【发布时间】:2013-06-20 23:01:45
【问题描述】:
我的 WPF 数据网格有问题。我有两个 ComboBox 列,第二个应该设置它的 datacontext 依赖于第一个中选择的内容。
视图模型
public class MyCollection: AbstractViewModel
{
private BindingList<string> _subitems;
public BindingList<string> Subitems
{
get { return _subitems; }
set { _subitems = value; Notify("Subitems");}
}
private string _name;
public string Name
{
get { return _name; }
set { _name = value; Notify("Name");}
}
}
Xaml
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding SelectedName}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox SelectedValuePath="Name"
x:Name="CollectionBox"
SelectedValue="{Binding SelectedName}"
DisplayMemberPath="Name"
ItemsSource="{Binding SomeBinding}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding SelectedSubitem}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox SelectedValue="{Binding SelectedSubitem}"
ItemsSource="{Binding ElementName=CollectionBox, Path=SelectedItem.Subitems}" />
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
我的第一个 ComboBox 的绑定没问题,但我在第二个 ComboBox 中没有看到任何项目(视图模型有 ComboBoxes 展位的条目);只有 TextBox 绑定按预期工作。我也用 ComboBoxColumn 进行了尝试,但结果相同。
【问题讨论】:
-
您是否尝试过 ìtemssource` 的静态资源?喜欢那里c-sharpcorner.com/uploadfile/dpatra/combobox-in-datagrid-in-wpf
-
嗨,但我没有静态资源。我要绑定的列表在我的视图模型中设置并且是动态的。
-
你可以用你的 ViewModel 绑定到你的
CollectionBox.SelectedItem并在那里做一些逻辑
标签: c# wpf xaml datagrid datagridcomboboxcolumn