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)
工作得很好.我在这里缺少什么?
发回我的评论以标记答案.
我的DataContext已设置,但它是在InitializeComponent()之后设置的.我认为这可能是问题所在.然后我意识到,当我通过xaml绑定时,当视图加载时,绑定发生在属性为空.
在视图加载后(即在_presenter.OnViewReady()上),该属性将被填充.由于它不是一个可观察的集合,所以没有任何东西被添加到组合框中.从我的代码背后指定它起作用,因为那时数据存在于属性中.
假设您的窗口/页面中有一个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中数据绑定的良好基础.
| 归档时间: |
|
| 查看次数: |
53514 次 |
| 最近记录: |