问题描述
我正在尝试将 WPF 中的 ComboBox 绑定到 LogLevels 列表。下面类
public class LogLevel
{
public string Label;
public byte Val;
public static List<LogLevel> GetAll()
{
return new List<LogLevel> {
new LogLevel{
Label = "None",Val = 0
},new LogLevel{
Label = "Info",Val = 3
},new LogLevel{
Label = "Error",Val = 2
}
};
}
}
我希望能够使用 GetAll
的结果填充 ComboBox 并将 displayMemberPath 设置为“标签”
ddlLogLevel.ItemsSource = LogLevel.GetAll();
<ComboBox displayMemberPath="Label" x:Name="ddlLogLevel" />
我也尝试在控件的代码隐藏中静态设置值,但组合框有空白标签。 selecteditem 和 index 正在按预期填充,只是不确定如何使 display 值起作用
解决方法
DisplayMemberPath
类型是属性,而不是字段。
如果您更改此设置,您可以看到组合框项目。
public class LogLevel
{
public string Label { get; private set; }
public byte Val { get; private set; }
public static List<LogLevel> GetAll()
{
return new List<LogLevel> {
new LogLevel{
Label = "None",Val = 0
},new LogLevel{
Label = "Info",Val = 3
},new LogLevel{
Label = "Error",Val = 2
}
};
}
}