2011-12-14 52 views
0

我有一個標籤項目,我目前正在加載一個用戶控件作爲項目在數據模板中。我有兩個日期選擇器和一個按鈕。點擊這個按鈕,我需要顯示一個堆棧面板,然後加載其他控件。我的問題在於,儘管點擊事件已經觸發,並且新數據在新的對象/集合中可用,但將其分配給視圖中的屬性時,模型並未使用數據更新控件。另外我無法改變面板的可視性。 這是代碼:更新我的視圖模型時,爲什麼我的用戶控件不能更新?

用戶控件是tabitem的數據模板,tabcontrol項目源綁定到集合。因爲當我試圖在我的視圖模型中直接綁定控件和屬性時,我得到了綁定表達式錯誤,我所做的是在模型類構造函數中創建了相同的屬性,並且我獲取/設置了viewmodel屬性的值。目前編譯器顯示沒有綁定錯誤,如果我綁定在模型類中定義的屬性。

<UserContrl> 
    <StackPanel Grid.Row = "0"> 
    <Button Grid.Column="4" HorizontalAlignment="Left" Content="Generate Graph" 
      Width="140" Command="{Binding GenGraph}" /> 
    </StackPanel> 
    <StackPanel Grid.Row = "1" Visibility={Binding ShowReport"> 
    ...... 
    </StackPanel> 
</UserControl> 
+2

您的ViewModel是否實現了`INotifyPropertyChanged`?如果WPF在屬性更改時自動更新UI,那麼該接口是必需的。也許你可以向我們展示你的ViewModel代碼。 – Rachel 2011-12-14 13:53:14

回答

1

這是剪切和粘貼?因爲你錯過了綁定「}」的綁定...

0

它們是實現iNotifyPropertyChanged的公共屬性嗎?

0

確認您的視圖模型的ShowReport屬性的類型可見性(不是布爾)
,綁定到在XAML必須在ViewModel類是可用的所有屬性,編譯器不會顯示任何錯誤,如果他們不是,在運行時你也不會因爲這個問題而收到錯誤,他們就不會工作。
你可以爲其他問題展示更多的XAML /代碼(stackpanel內的控件)嗎?
我會對視圖感興趣XAML和viewmodel代碼

+0

它的類型可見性。 – sri 2011-12-14 15:30:10

相關問題