【问题标题】:Empty first value on two comboboxes updating one another两个组合框上的空第一个值相互更新
【发布时间】:2013-08-16 11:08:11
【问题描述】:

对 c# 和 xaml 相当陌生,所以要有耐心!我有两个组合框,每个组合框显示的值相互依赖。为此,我使用了 DisplayMemberPath 和 SelectedMemberPath,如下所示:

<ComboBox SelectedIndex="-1" x:Name="SiteLocCombo" SelectedValuePath="GeneralArea" DisplayMemberPath="Station" ItemSource="{Binding}"/>
<Combobox SelectedIndex="-1" x:Name="SiteCodeCombo" SelectedValuePath="Station" DisplayMemberPath="GeneralArea" ItemSource="{Binding}"/>

为了获得组合框中的第一个值,我添加了属性IsSynchronizedWithCurrentItem=True 但现在组合框不会相互更新

【问题讨论】:

    标签: c# wpf xaml combobox


    【解决方案1】:

    如果您希望第二个组合跟踪第一个组合的选定值...

    <ComboBox SelectedIndex="-1" 
                      x:Name="SiteLocCombo" 
                      SelectedValuePath="GeneralArea" 
                      DisplayMemberPath="Station" 
                      ItemSource="{Binding}"/>
            <ComboBox SelectedIndex="-1" 
                      x:Name="SiteCodeCombo" 
                      SelectedValuePath="Station" 
                      DisplayMemberPath="GeneralArea" 
                      ItemSource="{Binding}"
                      SelectedValue="{Binding ElementName=SiteLocCombo, Path=SelectedValue}"
                      />
    

    或者,您可以以相同的方式绑定到 SelectedIndex 或 SelectedItem 等。这适用于两者都绑定到同一个 ItemsSource 的情况,否则您需要在 ViewModel 中使用转换器或属性。

    【讨论】:

    • @FionaByrne,很高兴能帮上忙。您是 SO 新手,请阅读此建议...meta.stackoverflow.com/help/someone-answers
    • 谢谢!最后起作用的是您的 SelectedValue 代码,但我也从两者中删除了 SelectedValuePath,并设置 IsSynchronizedWithCurrentItem="False" 这使组合框相互更新,但在表单启动时不显示第一个值。跨度>
    猜你喜欢
    • 1970-01-01
    • 2017-01-12
    • 1970-01-01
    • 2014-01-20
    • 2014-05-24
    • 2011-03-01
    • 1970-01-01
    • 2016-08-31
    • 1970-01-01
    相关资源
    最近更新 更多