2013-12-21 29 views
0

我有以下問題,使用silverlight中的轉換器級聯屬性綁定

我有級聯的項目​​可以由用戶選擇。

因此,例如,我有一個項目一個的列表,從這個列表中的項目可以選擇,並可通過屬性SelectedA

每個A包含項目列表B。每個人都可以選擇,因此A提供了財產SelectedB

的項然後有一個屬性是布爾值Ç

現在我可以通過執行財產以後這樣直接綁定到Ç

Visibility="{Binding SelectedA.SelectedB.C, Converter={StaticResource BooleanToVisibilityConverter}}" 

現在,您可以看到我使用轉換器來設置可見性。但問題是,只要沒有選擇AB,轉換器將不會被使用。因此Visibiltiy仍將被設置爲可見。

爲了防止我被迫將項目包裝在另一個GUI項目中,以便我可以檢查所選項目的空值。

因此,我將不得不作出包裹在這種情況下,元素SelectedA檢查,如果是空,有知名度,布爾轉換器,然後另一個包裹元素SelectedB看到的,這也是空。只有這樣我才能使用實際的元素和綁定。

無論如何強迫轉換器觸發一個空值,所以可見性將被正確設置?

+1

也許最好把'TargetNullValue'和'FallbackValue'綁定到'Visibility.Hidden'。 – Silvermind

+1

謝謝,我沒有意識到這一點。你能發表一個答案,以便我可以接受嗎? – DokutoMekki

回答

1

當綁定值爲null時,您可以使用綁定上的TargetNullValue來提供默認值。您可以使用FallbackValue在綁定失敗時提供值。根據您的要求將其中一個或兩個設置爲Visibility.CollapsedVisibility.Hidden