WPF将comboBox绑定到List
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF将comboBox绑定到List相关的知识,希望对你有一定的参考价值。
我正在尝试以编程方式生成组合框项目。我对WPF很新,不明白我在哪里弄错了。
这是我的List<string>
:
public class StatusList : List<string>
{
public StatusList()
{
this.Add("aaa");
this.Add("bbb");
this.Add("ccc");
this.Add("ddd");
}
}
而我正试图展示这些项目
<DataTemplate>
<ComboBox Height="22" ItemsSource="{StaticResource StatusList}" SelectedItem="{Binding Status}" />
</DataTemplate>
但ItemsSource="{StaticResource StatusList}"
不被承认
答案
您需要首先设置MainWindow的DataContext
属性,该属性将为未明确设置源的任何Bindings提供默认源对象(通过设置Source,RelativeSource或ElementName)。
DataContext持有的对象通常称为视图模型。
你的视图模型应该有一个公共属性Statuses
,它返回一个List<string>
然后在XAML中你可以声明ItemsSource="{Binding Statuses}"
Statuses
也可以声明为ObservableCollection<string>
,以防您在添加或删除元素时更新UI。
另一答案
{StaticResource StatusList}
- StatusList这里不是类型名称,它是一个资源键。
要使{StaticResource}工作,应该在某处定义:
<Window.Resources>
<local:StatusList x:Key="StatusList"/>
</Window.Resources>
local
是声明StatusList
的命名空间的别名。 local
应该使用xmlns
在xaml中声明
以上是关于WPF将comboBox绑定到List的主要内容,如果未能解决你的问题,请参考以下文章
WPF ComboBox ItemTemplate 绑定到字符串集合