我的 WPF 应用程序在加载数据时有一个带有第三方控件的窗口。控件具有在数据开始加载和结束时显示和隐藏进度条的方法。我使用 MVVM 将数据绑定到我的控件。我需要属性来指示数据加载何时开始和结束,并且该属性必须可以在后面的代码中访问。我在带有 Visibility="Hidden" 的窗口中添加了 CheckBox 控件,并将其绑定到我的 ViewModel 中的属性标志,还在 Checked 事件上添加了 EventHandler:
<CheckBox Name="chkIndicator" Visibility="Hidden" IsChecked="{Binding IsDataLoading}" Checked="chkIndicator_Checked" />
在视图事件处理程序后面的代码中:
private void chkIndicator_Checked(object sender, RoutedEventArgs e)
{
if(this.chkIndicator.IsChecked.Value)
tableViewOrders.ShowIndicator();
else
tableViewOrders.HideIndicator();
}
在 ViewModel 中加载数据时:
public bool IsDataLoading
{
get { return _isDataLoading;}
set {
_isDataLoading = value;
PropertyChanged("IsDataLoading");
}
}
...
public void MethodLoadingData()
{
/*1*/ IsDataLoading = true;
//here method for loading data to collection binded to tableViewOrders
/*2*/ IsDataLoading = false;
}
当方法 MethodLoadingData 执行时,行 / 1 / 工作正常 - 事件处理程序 chkIndicator_Checked 被触发,但是当 / 2 / 运行 - 事件处理程序不被触发。有什么想法我错了吗?