2009-11-19 71 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>