は私が3 DataGridTextColumns DataGridの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>
全3つのDataGridTextColumnsデータ
のObservableCollectionに追加されるとデータグリッドを持っています。 コレクションを繰り返してインスタンスを取得し、次の行の値を設定します。フィールドのいずれかが更新されると、プログラムはそれに応じて更新する必要があります。
現在、私は開始フィールドのみを操作できますが、長さフィールドは操作できません。
テキストドキュメントの最初のフィールドを1行とし、テキストドキュメントの次の行の長さフィールドを考えると、これらの2つのフィールドは完全に離れている必要があります。私は達成しようとしています。私はかなりプログラミングに新しいですし、アルゴリズムのスキルは強力ではありません。私を助けてください、私が言った何かが意味をなさないならば、私ができる限り最善を尽くすように私に教えてください。 詳細については、コードを参照してください。
ありがとうございました!
私は今、コードを過ぎ
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