У меня есть DataGrid с 3 DataGridTextColumnsDataGrid WPF Поля
<DataGrid.Columns>
<DataGridTextColumn Header="Field Name" Binding="{Binding Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<DataGridTextColumn x:Name="BeginFields" Header="Begin" Binding="{Binding Begin, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
<DataGridTextColumn x:Name="LengthFields" Header="Length" Binding="{Binding Length, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataGrid.Columns>
Все три DataGridTextColumns данных добавляется в ObservableCollection. Я перебираю коллекцию для получения экземпляра и устанавливаю значения для следующей строки.
Программа должна обновиться соответственно, если какое-либо из полей будет обновлено.
Прямо сейчас я могу манипулировать только начальным полем, но не полем длины.
Подумайте о начальном поле как строке текстового документа и поле длины в качестве следующей строки в текстовом документе, эти два поля должны быть идеально отделены друг от друга и никогда не пересекаться друг с другом, я надеюсь, что имел смысл в том, что Я пытаюсь выполнить, я довольно новичок в программировании, и мои алгоритмические навыки не являются мощными. Пожалуйста, помогите мне, если что-то, что я сказал, не имеет смысла, пожалуйста, дайте мне знать, я буду изо всех сил стараться. См. Код для более подробной информации.
спасибо !!
Я теперь мимо Кодекса за
public MainWindow()
{
InitializeComponent();
dataGrid.ItemsSource = MWVM.FieldsCollection;
fileButton.Click += FileButton_Click;
loadPresetButton.Click += LoadPresetButton_Click;
savePresetButton.Click += SavePresetButton_Click;
clipboardButton.Click += ClipboardButton_Click;
saveButton.Click += SaveButton_Click;
****dataGrid.SelectedCellsChanged += ((o, e) =>
{
int track = 0;
foreach (Field f in MWVM.FieldsCollection)
{
track += f.Length;
f.Begin = track - f.Length;
}
}); ****
}
public class Field : ViewModelsBase
{
private string _name;
public string Name
{
get
{
return _name;
}
set
{
_name = value;
RaisePropertyChanged("Name");
}
}
private int _begin;
public int Begin
{
get
{
return _begin;
}
set
{
if (value != _begin)
{
_begin = value;
RaisePropertyChanged("Begin");
}
}
}
private int _length;
public int Length
{
get { return _length; }
set
{
if (value != _length)
{
_length = value;
RaisePropertyChanged("Length");
}
}
}
[JsonIgnore]
public string Blank { get; set; } = "";
}
public class MainWindowViewModel : ViewModelsBase
{
public ObservableCollection<Field> fieldsCollection;
public MainWindowViewModel()
{
_fields = CreateFieldsCollection();
}
private ObservableCollection<Field> CreateFieldsCollection()
{
fieldsCollection = new ObservableCollection<Field>();
return fieldsCollection;
}
ObservableCollection<Field> _fields;
public ObservableCollection<Field> FieldsCollection
{
get
{
return _fields;
}
set
{
if (_fields != value)
{
_fields = value;
RaisePropertyChanged("FieldsCollection");
}
}
}
}
Дорогой друг, удивительно вы выяснили, что Ive пытался добиться того, что чувствует, как эр ... алгоритм, безусловно, это, но, пожалуйста, простите меня, снимок экрана, который я загрузил, ввел вас в заблуждение. DataGrid всегда будет начинаться с 1 строки и пустых полей, пользователь будет заполнять ячейки/поля по мере их прохождения, в ячейках нет предустановленных значений изображение Ive загружено ... приложение запускается, будет только 1 строка, и DataGrid будет генерировать дополнительные строки на основе потребностей пользователей. Еще раз спасибо! и извините за ужасное объяснение. – Ahhzeee
Как я могу отметить это, как вам ответил? Спасибо!!! – Ahhzeee
Вы должны увидеть контур галочки в левой части ответа. Нажмите на нее, чтобы принять ответ: http://meta.stackexchange.com/questions/23138/how-to-accept-the-answer-on-stack-overflow – mm8