何时(什么事件)应该在WPF用户控件中填充控件(Combos,Drop-Downs)?
目前我正在使用UserControl_Loaded,但这不止一次,并且在开发机器上产生不一致的结果。
public UserControl_Load(x, x)
{
if(!this.Loaded)
{
//populate controls here
}
}
如果这是最佳做法,那么我会尝试解决这个问题;但是我更感兴趣的是什么时候(什么事件)最适合用于填充控件?
由于
鉴于Sheridan的回答,我发现这篇精彩的博客文章给那些可能正在寻找如何在WPF中正确数据绑定的精彩教程(Blog)
答案 0 :(得分:1)
不是处理事件来填充控件,而是尝试数据绑定方式:
首先在实现INotifyPropertyChanged
interface:
// You need to implement the `INotifyPropertyChanged` interface properly here
public ObservableCollection<YourDataType> Items { get; set; }
然后你可以从constuctor中调用的代码中填充它,或者在Command
处理程序中填充它以响应某些UI操作:
Items = GetSomeItems();
现在,如果您已将此属性的Binding
定义为UI集合控件,则UI将自动更新:
<ListBox ItemsSource="{Binding Items}">
...
</ListBox>
只要将视图的DataContext
属性设置为视图模型的实例:
DataContext = new SomeViewModel();
最后,我建议您查看MSDN上的Data Binding Overview页面以获取更多信息。