gpt4 book ai didi

wpf - Infragistics XamDatagrid 绑定(bind)问题

转载 作者:行者123 更新时间:2023-12-03 10:38:45 27 4
gpt4 key购买 nike

我有一个 MVVM C#​​/WPF 应用程序。我想将 XamDataGrid 绑定(bind)到我的一个 View 模型,以便用户可以定义他们想要的结果结构 - 将什么列映射到什么变量。
我的核心拥有这样的字典 - Dictionary<string, string> , 我想把它包装在 ObservableCollection并绑定(bind)到此,而不是将数据复制到 DataTable .问题是,我不能以这种方式添加行( View 似乎已锁定以进行添加)并且未保存更改。我的代码:

    <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>

View 模型(相关部分):
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);

最佳答案

对于添加行,XamDataGrid 使用 IEditableCollectionView .CanAddnew 或 IBindingList.AllowNew。

如果您使用 ListCollectionView对于网格的 DataSource,您可以添加新行。

要将 ListCollectionView 与 ObservableCollection 一起使用,请将 ObservableCollection 传递给 ListCollectionView,然后使用 CollectionView 绑定(bind)到网格。

关于wpf - Infragistics XamDatagrid 绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13393979/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com