我正在使用MVVM Light WPF 4.如何使用WPF中的綁定更改可見性
我的Home.xaml中有一個ContentPresenter。
<ContentPresenter Name="MDI" Content="{Binding WindowName, Mode=OneWay}">
我通過在菜單中點擊使用命令綁定用戶控件在這個視圖模型像
public UserControl WindowName { get; set; }
void ShowSalesEntry()
{
WindowName = null;
WindowName = new SalesEntry();
RaisePropertyChanged("WindowName");
}
,它是有約束力的罰款。
現在,在用戶控制我有一個按鈕,我用來關閉(但以關閉i中的能見度 改變爲摺疊)通過這種方式..
Visibility="{Binding visibility, Mode=OneWay}"
在用戶控制視圖模型,
public SalesEntryViewModel()
{
visibility = Visibility.Visible;
cmdExitWindow = new RelayCommand(ExitWindow);
RaisePropertyChanged("visibility");
}
及以下關閉(能見度倒塌)
public RelayCommand cmdExitWindow { get; set; }
void ExitWindow()
{
visibility = Visibility.Hidden;
RaisePropertyChanged("visibility");
}
退出(意味着可見性摺疊).. 這工作正常。
問題是當我點擊相同的網頁我的意思是顯示相同的用戶控制, 現在這次可見性仍然崩潰。即使我更改爲可見的 加載事件。
如何解決這個.. 我是新來的MVVM WPF ..請幫助我..
嗨,謝謝你的回覆..但是,當我再次點擊菜單,我重新初始化對象的權利' WindowName = null; WindowName = new SalesEntry(); RaisePropertyChanged(「WindowName」);'這種方式.. 我錯了嗎? – shanmugharaj
你實際上在某處創建了一個SalesEntryViewModel的新實例嗎?它看起來像你做一個新的窗口購買正在使用相同的viewModel沒有設置可見性的可見性。 –
謝謝指出那個出山了,好點T.如果他們正在繪製相同的視圖模型(例如,視圖模型實例在app.xaml或另一個共享資源字典中聲明),那麼無論構建新對象,您都一定會得到此結果。 – learningcs