2013-07-29 51 views
0

我的項目中有2個下拉畫廊控件。第一個下拉菜單的選擇是控制第二個下拉菜單顯示的內容。我有幾個類別,他們的可見性是由所選項目的枚舉控制的。可見性綁定在初始啓動時不起作用

<RibbonGalleryCategory Header="Slice Attributes" Visibility="{Binding Path=MapModel.SelectedTypeKey, Mode=TwoWay, Converter={StaticResource EnumMatchToVisibilityConverter}, ConverterParameter={x:Static map1:TypeKey.Slice}}"> 

這工作正常,除了最初啓動。如果我按預期的方式更改列表篩選器中的第一個下拉列表。它顯示了最初星上的所有內容,似乎忽略了基於第一個下拉菜單的可見性。我使用的是MVVM,所以我寧願不使用代碼,如果我可以幫助它。

任何想法如何讓過濾工作在初始啓動?

回答

0

您可以通過加載時,您的視圖模型模擬性質的變化做到這一點:

請注意,您還必須調用通常由你的下拉更改事件驅動的任何方法。

例子:

MapViewModel() 
{ 
    // Do your loads first...   

    NotifyPropertyChange("SelectedTypeKey"); 
} 
+0

,這似乎不是在構造函數中工作。當實際完成的加載事件觸發時,我將不得不運行它嗎? –

+0

是的,在通知之前,您需要確保所有內容都先加載。把它看作改變你的下拉菜單中的選定項目,然後將它改回第一個項目。 – Khan

+0

@scottlafoy確保創建MV的視圖在屏幕初始化後創建MV。 – OmegaMan