确定Listbox何时完成加载绑定元素
本文关键字:绑定 元素 加载 Listbox 何时完 确定 | 更新日期: 2023-09-27 18:02:36
我有一个ListBox绑定到一个对象集合,一切都工作,除了我不知道如何调用一些代码,我需要在列表中的一个项目被选中时执行。
为了清楚起见,我已经为用户选择不同的项时连接了Listbox_SelectionChanged
事件—并且工作良好。
ListBox_BoundDataFinishLoading
之类的东西,或者…
任何想法?
你可以钩到ItemList-Changed事件,并选择添加后的第一个项目:
public MyWindow()
{
InitializeComponent();
((INotifyCollectionChanged)ListBox.Items).CollectionChanged +=
ListBox_CollectionChanged;
}
private void ListBox_CollectionChanged(object sender,
NotifyCollectionChangedEventArgs e)
{
if (e.Action == NotifyCollectionChangedAction.Add && ListBox.SelectedItem == null)
{
ListBox.SelectedItem = e.NewItems[0];
}
}
不确定是否真的可以找到WPF数据绑定完成的安全通知。但也许你可以这样做:
你说你已经从控件处理SelectionChanged通知,所以这是UI -> DataModel工作流。如果在你的绑定对象中你有Selected属性并将其绑定到控件(让我们说突出显示行),这意味着在SelectionChanged事件中你可以执行Selected=true,这将执行UI-> ViewModel-> UI(选择一行)。但这也意味着在你的ViewModel对象集合的初始绑定时刻应该足以让你将第一个元素的Selected属性设置为true。
对我来说,很难说它是否真的适用于你的情况,因为我不知道你的应用程序的架构,但这可以是一种方法。
希望对你有帮助。
问候。