在datagrid中我有两个DataGridComboBoxColumns。其中一列的项目应取决于在另一列中选择的内容。用于建模的底层集合是dictionary<string,List<string>>.
我应该如何去实现它?我似乎无法挂钩到列上任何相关的事件,我找不到支持这种任何数据绑定方案..wpf toolkit,datagrid,comboboxcolumn
0
A
回答
0
对于第二列,我没有使用DataGridComboBoxColumn,而是使用了带有嵌入式Combobox的DataGridTemplateColumn。对于itemsource我定义了一个转换器:string -> List<string>
。该转换器转换的另一DataGridComboBox(这势必Navn
)的selectedItem属性的值存入List<string>
,这仅仅是一个字典查找。
像这样:
<my:DataGridTemplateColumn>
<my:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox SelectedItem="{Binding Værdi}"
ItemsSource="{Binding Navn, Converter={StaticResource dimensionToValues}}"
>
</ComboBox>
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
</my:DataGridTemplateColumn>
0
我有同样的情形而回,并固定它像这样:
public class DataItem : INotifyPropertyChanged {
...
public List<SomeObject> DisplayableComboBoxItems {
get; set;
}
private static Dictionary<int, List<SomeObject>> myDict;
public Dictionary<int, List<SomeObject>> MyDict {
get {
if (myDict == null) {
myDict = GetYourDataFromSomewhere();
}
return myDict;
}
}
public int TypeId {
get { return typeId; }
set {
if (value == typeId) return;
typeId = value;
RaisePropertyChanged("TypeId");
}
}
public int TypeSetId {
get { return typeSetId; }
set {
if (typeSetId == value) return;
typeSetId = value;
RaisePropertyChanged("TypeSetId");
DisplayableComboBoxItems = MyDict[typeSetId];
RaisePropertyChanged("DisplayableComboBoxItems");
TypeId = 0;
}
}
...
}
DataItem是绑定到DataRow的对象。 这只是代码的一个小模型。基本上,每当TypeSet发生变化时,我需要一个新的要显示的类型列表。我只使用了一个静态列表,在这个例子中我使用了一个字典。
使用此设置,您可以将组合框ItemsSource绑定到“DisplayableComboBoxItems”,将SelectedValue绑定到“TypeId”。 你将需要其他属性来显示正确的文本,而不是TypeId。
这样做的缺点是,当你有1000多件商品时,你将拥有所有商品的相同列表。然而这并不是我的情况(DataGrid显示最多50项)。
我希望这是非常明显的,它可以帮助您在正确的方向!
喝彩!
Roel
相关问题
- 1. WPF DataGrid ComboBoxColumn不插入值
- 2. WPF ToolKit DataGrid性能
- 3. WPF ToolKit Datagrid刷新绑定
- 4. 将ComboBoxColumn绑定到WPF DataGrid中DataGrid的ItemsSource的集合
- 5. WPF Toolkit DataGrid复选框问题
- 6. WPF Toolkit DataGrid多选:如何获取SelectedItems?
- 7. WPF Toolkit DataGrid - 行重叠(行高问题)
- 8. WPF Toolkit DataGrid SelectionChanged获取单元格值
- 9. WPF Toolkit Datagrid with .Net 3.5 no sp1
- 10. WPF Toolkit Datagrid - 你如何关闭选择?
- 11. WPF Toolkit DataGrid如何设置Column Header SelectionBackground?
- 12. WPF Toolkit DataGrid的插入性能如何?
- 13. 获取Datagrid中的ComboBoxColumn的选定值(WPF)
- 14. WPF Toolkit BusyIndicator
- 15. wpf toolkit colorpicker
- 16. WPF Toolkit DataGrid呈现不正确的列宽度
- 17. 如何使用WPF Toolkit Datagrid DataGridTemplateColumn和一个组合框?
- 18. 如何在XAML中设置WPF Toolkit DataGrid的左上角?
- 19. 如何在Visual Studio 2010中安装WPF Toolkit(datagrid)?
- 20. WPF Toolkit的DataGrid排序,更改反映到数据源?
- 21. 如何对WPF Toolkit DataGrid上的DataGridTemplateColumn进行排序?
- 22. 如何在XamlPad(最新版本)中使用WPF Toolkit Datagrid?
- 23. 如何使WPF Toolkit的DataGrid的模板列可排序?
- 24. WPF Toolkit Datagrid:源是否需要可序列化?
- 25. 如何防止WPF Toolkit DataGrid中的行选择?
- 26. WPF Toolkit DataGrid - 仅查找可见/当前可查看的行
- 27. 在WPF Toolkit的DataGrid中跨多行记录一个记录
- 28. Chart Toolkit上的标签WPF
- 29. WPF Toolkit Accordion - How To Data Bind
- 30. 尽管设置了DataContext,我的WPF Toolkit DataGrid上的Columns属性仍未设置
感谢答案罗埃尔,非常有帮助的,但是我最终追求不同的解决方案。 – fsl 2009-10-14 11:49:14