[英]WPF bind comboBox to List<string>
我正在尝试以编程方式生成组合框项目。 我对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}"
如果您希望在添加或删除元素时更新UI,则Statuses
也可以声明为ObservableCollection<string>
。
{StaticResource StatusList}
-这里的StatusList不是类型名称,它是资源密钥。
为了使{StaticResource}工作,应在以下位置进行定义:
<Window.Resources>
<local:StatusList x:Key="StatusList"/>
</Window.Resources>
local
是声明StatusList
名称空间的别名。 local
应该使用xmlns
在xaml中声明
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.