当我将DataGrid上的.ItemSource()属性设置为Collection时,调用会快速返回,但实际绑定会在之后发生。由于我想显示一个等待光标,我需要检测实际绑定何时完成。这有什么事吗?
答案 0 :(得分:1)
任何基于ItemsControl的东西都使用ItemContainerGenerator在后台生成其项目。您可以访问DataGrid的ItemContainerGenerator属性并挂接StatusChanged事件以确定何时完成。如果您正在使用虚拟化和滚动,则会再次触发,因此您需要在必要时处理该问题。
答案 1 :(得分:0)
我等待DataGrid
的{{1}}事件开火,我做了Loaded
,就像这样:
BeginInvoke
我在这里的回答中提供了更多详细信息:https://stackoverflow.com/a/44464630/2101117
答案 2 :(得分:0)
您最好的选择是挂接到Window或用户控件中的OnPropertyChanged事件。每次更新属性时都会触发此事件。然后检查您希望观察的实际财产并采取措施。
protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
{
if ("YOUR_PROPERTY_NAME".Equals(e.Property.ToString()))
{
// Take action
}
base.OnPropertyChanged(e);
}