MVVM C#/WPF アプリがあります。XamDataGrid をビュー モデルの 1 つにバインドして、ユーザーが結果の構造 (どの列をどの変数にマップするか) を定義できるようにします。
私のコアはそのようなディクショナリ - を保持しており、データを にコピーするのではなく、 でDictionary<string, string>
ラップしてこれにバインドしたいと考えています。問題は、この方法で行を追加できず (追加のためにビューがロックされているようです)、変更が保存されないことです。私のコード: ObservableCollection
DataTable
<igDP:XamDataGrid
Grid.Row="1" Grid.Column="0"
Name="resultStructure"
DataSource="{Binding VariablesDictionary, Mode=TwoWay}"
GroupByAreaLocation="None">
<igDP:XamDataGrid.FieldLayoutSettings>
<igDP:FieldLayoutSettings
AllowFieldMoving="WithinLogicalRow"
AllowAddNew="True"
AllowDelete="True"
AddNewRecordLocation="OnBottomFixed" />
</igDP:XamDataGrid.FieldLayoutSettings>
</igDP:XamDataGrid>
ビューモデル(関連部分):
private ObservableCollection<DictionaryEntry> variablesDictionary;
public ObservableCollection<DictionaryEntry> VariablesDictionary
{
get { return variablesDictionary; }
set
{
variablesDictionary = value;
OnPropertyChanged(()=>VariablesDictionary);
}
}
...
List<DictionaryEntry> vars = resultStructureModel.Variables.Select(x => new DictionaryEntry {Key = x.Key, Value = x.Value}).ToList();
VariablesDictionary = new ObservableCollection<DictionaryEntry>(vars);