【发布时间】:2021-10-15 21:22:27
【问题描述】:
我正在使用 WPF/C# 中的组合框,我遇到的问题让我有些困惑。在组合框上,我有 SelectedValue 将值(TaxID)传递给 VM 上的对象,此外,我有 SelectedItem 将所选对象从组合框传递到 VM 上的属性。 当我从数据网格打开一条记录进行编辑时,SelectedItem 导致组合框为空白,它没有加载存储在数据库中的值。删除 SelectedItem 属性后,组合框会在打开时正确加载以进行编辑。我需要将组合框中的选定对象传递给 VM 上的属性,非常感谢任何帮助!
<ComboBox x:Name="cboPractice"
ItemsSource="{Binding Path=PracticesList}"
DisplayMemberPath="TaxName"
SelectedValuePath="TaxID"
SelectedValue="{Binding Path=SiteVisitScheduleCurrent.TaxID,
UpdateSourceTrigger=PropertyChanged}"
SelectedItem="{Binding Path=SelectedPractice, UpdateSourceTrigger=PropertyChanged}"
>
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding Path=PracticeSelectionChangedCommand}"
CommandParameter="{Binding ElementName=cboPractice,
Path=SelectedItem.TaxID}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</ComboBox>
【问题讨论】:
-
嗨,我认为this answer 应该有助于您理解 SelectedValue/SelectedItem/SelectedValuePath。如果无法访问您的 VM 代码,很难知道,但我认为您应该只使用一种方法来设置您的选择:SelectedValue 或 SelectedItem 或 SelectedValuePath 但不能同时使用所有这些。
-
您的示例标记中的
DataGrid在哪里?它与已发布的ComboBox有何关系?