在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