2009-11-19 69 views
0

我使用一個ComboBox控件內一個TreeView(從here)。我有一個ViewModel對象,它是我的窗口的DataContext。更新沒有代碼的視圖模型的屬性?

我想什麼有發生的情況是,當在TreeView /組合框更改所選項目我想在我的ViewModel屬性,以與選擇的項目進行更新。理想情況下,我希望能夠在xaml中完全做到這一點,但我無法弄清楚如何去做。

該控件有一個「SelectedTreeViewItem」依賴屬性,所以基本上我想將該屬性綁定到我的ViewModel對象上的依賴屬性,但我不知道我究竟需要做什麼(觸發器?EventTrigger?)。綁定只能是一種方式,因爲我只是希望我的視圖模型的屬性反映當前在控件中選擇的內容;我不需要從我的視圖模型中更改控件的正確選擇的項目。我對WPF還很陌生。

下面是我的控制企圖的SelectedTreeViewItem屬性的屬性綁定在我的視圖模型的代碼。它不起作用,我的視圖模型上的屬性始終爲空。

<local:TreeViewCombo 
     x:Name="encounterCodeSelector" 
     ItemsSource="{Binding Path=EncounterCodes}" 
     ItemTemplate="{StaticResource EncounterCodesTemplate}"    
     Style="{StaticResource TreeViewInComboBox}" 
     SelectedTreeViewItem="{Binding Path=SelectedEncounterCode, Mode=OneWay}" 
     Canvas.Left="171" Canvas.Top="377" Width="456"> 
    </local:TreeViewCombo> 

編輯:

改變從 「單向」 到 「OneWayToSource」 模式工作。

回答

0

的SelectedTreeViewItem只需綁定到視圖模型的財產,使用BindingMode=OneWay。標準綁定應該可以正常工作。

+0

什麼是「標準綁定」? The 標記?我已經嘗試過,vs.net抱怨,所以要麼我把它放在錯誤的地方或使用它錯誤。 – Joe 2009-11-19 19:31:05

0

改變從「單向」到「OneWayToSource」模式工作。

<local:TreeViewCombo 
     x:Name="encounterCodeSelector" 
     ItemsSource="{Binding Path=EncounterCodes}" 
     ItemTemplate="{StaticResource EncounterCodesTemplate}"    
     Style="{StaticResource TreeViewInComboBox}" 
     SelectedTreeViewItem="{Binding Path=SelectedEncounterCode, Mode=OneWayToSource}" 
     Canvas.Left="171" Canvas.Top="377" Width="456"> 
    </local:TreeViewCombo>