请注意:
对于此示例,列表中的两种类型进行了很多简化,并且必须分开。
不能更改使用 int 作为类型之间的连接。
问题:
给定下面的代码,我如何获得标记为的 ComboBox ???
:
显示
ColorDefs.Name
为它的内容。设置为等于
SelectedItem
的那个。Models.DisplayColorNumber
ColorDefs.ColorNumber
Models.DisplayColorNumber
如果选择更改,则更新更新。
在代码隐藏中
public List<ModelData> Models { get; }
public List<DisplayColorDefinition> ColorDefs { get; }
DataContext=this;
XAML:
<ListBox ItemsSource="{Binding Models}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<ComboBox ??? />
<TextBlock Text="{Binding Models, Path=Name}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
模型数据类型:
public class ModelData
{
private string name;
private int displayColorNumber;
public string Name
{
get { return name; }
set { name = value; }
}
public int DisplayColorNumber
{
get { return displayColorNumber; }
set { displayColorNumber = value; }
}
}
显示颜色定义类型:
public class DisplayColorDefinition
{
private int colorNumber;
private string name;
private Color displayColor;
public int ColorNumber
{
get { return colorNumber; }
set { colorNumber= value; }
}
public string Name
{
get { return name; }
set { name = value; }
}
public Color DisplayColor
{
get { return displayColor; }
set { displayColor = value; }
}
}