![](/img/trans.png)
[英]WPF OnPropertyChanged for User Control inside ItemsControl
[英]WPF Control Visibility w/ ICommand & OnPropertyChanged
我有一个带有3个控件的用户窗口 - 一个'执行'按钮,一个结果控件和一个处理控件。 我的目标是在按下execute后显示处理控件,然后在execute方法完成时隐藏它。
但是,当我假设处理控件时,处理控件不显示...而是仅显示何时(如果)调用创建另一个提示用户输入的窗口的回调函数。
处理控件的可见性通过BoolToVis转换器绑定到我的viewmodel中的bool Processing
。 execute方法在开始时将Processing
设置为true,然后在完成时将其设置为false。 Processing
的setter调用OnPropertyChanged.
我的视图模型实现了INotifyPropertyChanged.
private bool _processing;
public bool Processing
{
get
{ return _processing; }
set
{
_processing = value;
this.OnPropertyChanged("Processing");
}
}
private RelayCommand _search;
public RelayCommand Search
{
get { return _search ?? (_search = new RelayCommand(p => OnSearch(), p => CanSearch())); }
}
private void OnSearch()
{
this.Processing = true;
DoWork(delegate callBack);
this.Processing = false;
}
还有一些XAML:
<BooleanToVisibilityConverter x:Key="BoolToVis" />
<me:ProcessingControl Visibility="{Binding Path=Processing, Converter={StaticResource ResourceKey=BoolToVis}}"/>
使用Task或Background Worker执行DoWork,在启动任务或后台工作程序之前设置Processing = true,并在任务结束时将其设置为false。 这将使Processing控件可见并隐藏。 如果您在任务或后台工作人员中链接bool处理的值,请确保通过调度程序调用它
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.