WPF Databinding组合框到列表<string>

ioW*_*int 14 c# data-binding wpf xaml combobox

我很难通过XAML尝试将我的属性List绑定到我的组合框中.

public List<string> MyProperty  { get; set; }
Run Code Online (Sandbox Code Playgroud)

以下XAML绑定不起作用:

<ComboBox Name="cboDomainNames" ItemsSource="{Binding Path=MyProperty}"/> 
Run Code Online (Sandbox Code Playgroud)

但是以下任务:

cboDomainNames.ItemsSource = MyProperty;
Run Code Online (Sandbox Code Playgroud)

工作得很好.我在这里缺少什么?

ioW*_*int 8

发回我的评论以标记答案.

我的DataContext已设置,但它是在InitializeComponent()之后设置的.我认为这可能是问题所在.然后我意识到,当我通过xaml绑定时,当视图加载时,绑定发生在属性为空.

在视图加载后(即在_presenter.OnViewReady()上),该属性将被填充.由于它不是一个可观察的集合,所以没有任何东西被添加到组合框中.从我的代码背后指定它起作用,因为那时数据存在于属性中.


Ber*_* IT 7

假设您的窗口/页面中有一个List<Foo>被调用者Foos.Foo有房产Name.现在,您在XAML中设置绑定,如下所示:

<ComboBox ItemsSource="{Binding Path=Foos}"
DisplayMemberPath="Name"
SelectedValuePath="Name"
SelectedValue="{Binding Path=Foo}"
/>
Run Code Online (Sandbox Code Playgroud)

这是基于这个SO问题.阅读此(WPF DataBinding概述)作为WPF中数据绑定的良好基础.

  • 不是绑定到List <string>的解决方案 (3认同)