2 回答
TA贡献1895条经验 获得超7个赞
你需要分开你的顾虑。在您后面的代码中,您应该只有处理视图相关内容的代码。大多数情况下,我的代码隐藏是空的。
在您的 ViewModel 中,您应该处理与数据相关的逻辑。因此,不要在后面的代码中投射数据上下文,而是Command在视图模型中使用 a 处理单击。
由于无法将命令绑定到SelectedItemChanged您的 ,因此TreeView您可以使用交互触发器。
<TreeView xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectedItemChanged">
<i:InvokeCommandAction Command="{Binding Path=SomeCommand, Mode=OneWay}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</TreeView>
TA贡献1839条经验 获得超15个赞
如果没有一些示例代码,Ruven 很难说。但可能是您需要在 ViewModel 上实现 INotifyPropertyChanged?
通过调用 OnPropertyChanged("PropertyName"); 在 viewmodel 属性的 setter 中,ui 将获取更改。
还要确保两个视图都引用同一个对象,而不是同一个对象的副本。
- 2 回答
- 0 关注
- 199 浏览
添加回答
举报