gpt4 book ai didi

c# - 如何将 TreeView 中的 SelectedItemValue 绑定(bind)回 Silverlight 中的 ViewModel?

转载 作者:行者123 更新时间:2023-12-02 12:14:25 30 4
gpt4 key购买 nike

我有一个项目的 TreeView 和一个相应的 TreeViewModel。我想支持 TreeViewModel 上的一个属性,它可以跟踪 TreeView 中当前选定的项目。

这是我的代码:

<UserControl.DataContext>
<vm:TreeMenuViewModel />
</UserControl.DataContext>

<UserControl.Resources>
<common:HierarchicalDataTemplate x:Key="MenuItemsTemplate"
ItemsSource="{Binding ChildItems}">
<TextBlock Text="{Binding MenuOption}"/>
</common:HierarchicalDataTemplate>
</UserControl.Resources>

<Grid x:Name="LayoutRoot" Background="White">
<toolkit:DockPanel>
<sdk:TreeView
Name="treeView1"
VerticalAlignment="Stretch"
toolkit:DockPanel.Dock="Left"
Background="Transparent"
ItemsSource="{Binding ChildItems}"
ItemTemplate="{StaticResource MenuItemsTemplate}"
>
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectedItemChanged">
<ei:ChangePropertyAction
TargetObject="{Binding}"
PropertyName="SelectedItemId"
Value="{Binding MenuOptionId}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</sdk:TreeView>
</toolkit:DockPanel>
</Grid>

TreeView 正确绑定(bind)并显示数据。触发器也在工作并定位正确的属性 - 当我中断 TreeViewModel 中的 SelectedItemId 属性时,该属性被命中,但提供的值始终为 0。如何提供所选项目的值?

最佳答案

只需删除整个触发器并添加:

 ItemsSource="{Binding ChildItems}"
SelectedItem="{Binding SelectedChild}"

然后您的 ViewModel 需要一个 SelectedChild 属性。您的虚拟机可以对该属性的 setter 所做的更改使用react。

如果您想要 2 向绑定(bind),请将其设为 NotifyChange 属性。

我想你想要 id:SelectedChild.Id 或类似的东西。

关于c# - 如何将 TreeView 中的 SelectedItemValue 绑定(bind)回 Silverlight 中的 ViewModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7269488/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com