我有以下代码
private static ObservableCollection<myColor> myItems = new ObservableCollection<myColor>();
myItems.Add(new myColor("red"));
当对象myColor是这个类时
public class myColor
{
public string color { get; set; }
public myColor(string col)
{
this.color = col;
}
}
当我尝试在列表框中显示项目时,麻烦就是
<ListBox Margin="12,52,12,12" Name="listBox1" ItemsSource="{Binding}" />
它只显示“myColor”对象而不是“color”变量。如何显示此对象的变量?
答案 0 :(得分:0)
如果您只想在ListBox上显示项目的字符串属性,请使用DisplayMemberPath
。
否则使用ItemTemplate
,您可以将其设置为DataTemplate,它定义您的每个项目的外观,并且可以具有任何复杂性(即可以包含其他控件)。
答案 1 :(得分:0)
首先为窗口设置DataContext,如下所示:
public Window1()
{
InitializeComponent();
myItems.Add(new myColor("red"));
myItems.Add(new myColor("green"));
//Set the DataContext for the window
this.DataContext = myItems;
}
现在将XAML更改为:
<ListBox Margin="12,52,12,12" Name="listBox1" ItemsSource="{Binding}" DisplayMemberPath="color" />
这就是全部。它应该可以解决你的问题。