繁体   English   中英

WPF UserControl填充控件

[英]WPF UserControl Populate Controls

什么时候应该在WPF用户控件中填充控件(组合,下拉菜单)?

当前,我使用的是UserControl_Loaded,但是它触发了不止一次,并且在开发机器上会产生不一致的结果。

public UserControl_Load(x, x)
{
   if(!this.Loaded)
   {
     //populate controls here
   } 
}

如果这是最佳做法,那么我将尝试解决该问题。 但是我对什么时候最适合用来填充控件更感兴趣?

谢谢

鉴于谢里登的答案,我发现这个奇妙的博客文章对那些谁可能是如何在WPF正确数据绑定寻找一个伟大的教程( 博客

与其处理事件以填充控件,不如尝试数据绑定方法:

首先在实现INotifyPropertyChanged接口的类(视图模型)中创建一个collection属性:

// You need to implement the `INotifyPropertyChanged` interface properly here
public ObservableCollection<YourDataType> Items { get; set; }

然后,您可以根据构造函数或响应某些UI动作的Command处理程序中调用的代码填充它:

Items = GetSomeItems();

现在,如果您已为此属性定义了到UI集合控件的Binding ,则UI将自动更新:

<ListBox ItemsSource="{Binding Items}">
    ...
</ListBox>

只要将视图的DataContext属性设置为视图模型的实例:

DataContext = new SomeViewModel();

最后,我建议您查看MSDN上的“ 数据绑定概述”页面以获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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