繁体   English   中英

WPF将comboBox绑定到列表<string>

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM