2011-06-15 28 views
0

假設我有一個複雜的UI。根據可用的MODEL數據,某些控件沒有意義。我想有一個選項來「禁用」它們。 '禁用'我的意思是我不希望他們的DataBinding發生,因爲他們的ViewModel是不安全的\未定義。僅使用XAML代碼有條件加載WPF控件

this post中,建議使用DataContentSelector。

我想知道是否有不使用xaml以外的代碼的不同方法。例如,使用VisualState的實現,其中如果數據爲空,VisualState會將內容設置爲某個空框。

感謝

+0

也許有人可以評論當可見性崩潰時綁定會發生什麼 - 我想它仍然會發生? – Ricibob 2011-06-15 15:23:02

回答

0

我用這一招:(抱歉壞英文)

首先我我的DataContext綁定到我的虛擬機和轉換器添加到它

<Grid DataContext={Binding myvm, Converter={StaticResource mySwitchOfConverter}} 

,並在我的轉換器I有這樣的事情:

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
     { 
      if(Util.SwitchContext == true) 
       return value; 
      return null; 
     } 

Util.SwitchContext是一個靜態屬性女巫我將在我的代碼中設置並取消設置。