![](/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.