Mi chiedevo se è possibile nascondere un controllo su una vista se la proprietà a cui è associato il controllo non esiste nel modello di vista. Per esempio, se ho il seguente:MVVM: nasconde un controllo quando la proprietà associata non è presente
<CheckBox Content="Quote"
IsChecked="{Binding Path=IsQuoted}" />
Posso rilevare in XAML che la proprietà IsQuoted non esiste sul modello vista, e semplicemente nascondere il controllo in quel caso.
Sto essenzialmente creando una finestra di dialogo guidata che si muove attraverso una collezione di modelli di vista, visualizzando la vista associata per ognuno. Per alcuni dei modelli di vista nella raccolta, la proprietà "IsQuoted" sarà presente e, per alcuni, no.
Mi piacerebbe avere una casella di controllo al di fuori di queste viste che viene visualizzata quando il modello di visualizzazione corrente ha la proprietà e si nasconde quando il modello di visualizzazione non lo fa. Tutti i modelli di visualizzazione derivano da una classe base comune, ma preferirei non ingombrare la base aggiungendo una proprietà "ShowQuoted", ecc.
Pensieri? E, grazie in anticipo ...
Freddo. Sto usando WPF da quattro anni e non ho mai notato la proprietà FallbackValue (o l'ho fatto e non ho prestato attenzione al momento - difficile da dire). Questo potrebbe tornare utile. – MetalMikester
Se si desidera essere più espliciti, è possibile controllare DependencyProperty.UnsetValue http://msdn.microsoft.com/en-us/library/system.windows.dependencyproperty.unsetvalue%28v=vs.110%29. aspx –