绑定到db表的ComboBox最初应为空

时间:2011-05-03 21:13:39

标签: xaml

我有一个WPF组合框控件绑定到数据库表中的edm字段。这工作正常,只是它在启动时输入控件中的第一个值,这是不需要的。继承人xaml

<ComboBox x:Name="cbMeasure" 
          Width="104" 
          ItemsSource="{Binding Source={StaticResource ddMeasureViewSource}}" 
          DisplayMemberPath="Measure"
          IsSynchronizedWithCurrentItem="True"
          SelectedValuePath="Measure" 
          SelectedValue="{Binding Measure1}"/>

如果我只是对控件进行硬编码,它就不会将第一个值放在变量中。这是xaml的样子

<ComboBox x:Name="cbMeasure" Width="104" Text="{Binding Measure1}">
        <TextBlock Text="one"/>
        <TextBlock Text="two"/>
        <TextBlock Text="three"/>
        <TextBlock Text="four"/>
</ComboBox>

我需要做些什么来使数据库绑定组合框以一个空值开始,就像文本框组合框一样?这是一个问题,因为它将SelectedValue中的第一个值绑定到变量(Measure1)。

db table ddMeasure看起来像:

RID    Measure
---    -------
1      One
2      Two
3      Three
4      Four

所以将“One”放入ComboBox选项并填充Measure1变量。

1 个答案:

答案 0 :(得分:2)

好的,我找到了解决方法。您必须将属性IsSynchronizedWithCurrentItem设置为false,我认为我曾尝试过,但我认为我刚刚删除了该属性,默认值必须为true。所以xaml看起来像

<ComboBox x:Name="cbMeasure"
       Width="104"
       ItemsSource="{Binding Source={StaticResource ddMeasureViewSource}}"
       DisplayMemberPath="Measure"
       IsSynchronizedWithCurrentItem="False"
       SelectedValuePath="Measure"
       SelectedValue="{Binding Measure1}"/>

希望这有助于其他尝试查找此类绑定信息的人。