-2
如何设置单一的ItemsSource基于WPF中DataGrid的一些条件单的ItemsSource绑定数据网格组合框
XAML代码
<DataGrid HorizontalAlignment="Left" AutoGenerateColumns="False" ItemsSource="{Binding Items}" Margin="67,70,0,0" VerticalAlignment="Top" Height="170" Width="388">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Raw Materials" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock VerticalAlignment="Center" Text="{Binding Path=SelectedRawMaterials.Display}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox DisplayMemberPath="Display" SelectedItem="{Binding Path=SelectedRawMaterials}" SelectedValuePath="Value" ItemsSource="{Binding RMColloction}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Raw Materials" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock VerticalAlignment="Center" Text="{Binding Path=SelectedSize.Display}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox DisplayMemberPath="Display" SelectedItem="{Binding Path=SelectedSize}" SelectedValuePath="Value" ItemsSource="{Binding SizeColloction}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
MVVM模型
public class RawMaterials
{
public int Value { get; set; }
public string Display { get; set; }
}
public class Size
{
public int RMId { get; set; }
public int Value { get; set; }
public string Display { get; set; }
}
public class Item
{
public Item()
{
RMColloction = new List<RawMaterials>();
RMColloction.Add(new RawMaterials() { Display = "RM1", Value = 1 });
RMColloction.Add(new RawMaterials() { Display = "RM2", Value = 2 });
RMColloction.Add(new RawMaterials() { Display = "RM3", Value = 3 });
RMColloction.Add(new RawMaterials() { Display = "RM4", Value = 4 });
RMColloction.Add(new RawMaterials() { Display = "RM5", Value = 5 });
RMColloction.Add(new RawMaterials() { Display = "RM6", Value = 6 });
SizeColloction = new List<Size>();
SizeColloction.Add(new Size() { Display = "A", Value = 1, RMId = 1 });
SizeColloction.Add(new Size() { Display = "B", Value = 2, RMId = 2 });
SizeColloction.Add(new Size() { Display = "C", Value = 3, RMId = 2 });
SizeColloction.Add(new Size() { Display = "D", Value = 4, RMId = 1 });
SizeColloction.Add(new Size() { Display = "E", Value = 5, RMId = 2 });
SizeColloction.Add(new Size() { Display = "F", Value = 6, RMId = 1 });
}
public List<RawMaterials> RMColloction { get; set; }
public List<Size> SizeColloction { get; set; }
public RawMaterials SelectedRawMaterials { get; set; }
public Size SelectedSize { get; set; }
}
视图模型
到组合框public class ViewModel
{
public ViewModel()
{
Items = new ObservableCollection<Item>();
}
public ObservableCollection<Item> Items { get; set; }
}
这里我需要基于RawMaterialsColloction RMId的SizeColloction组合框填充。 是否有可能基于第一个组合选择的值获得具有相同参与的第二组合项目?
你试过了什么?你目前有什么代码?什么条件?什么组合框?什么????? – DLeh 2015-04-01 20:18:08
请详细说明你正在尝试做什么以及你做了什么不起作用的细节。 – 2015-04-01 20:18:26
我刚刚编辑... – 2015-04-01 21:14:15