如何在Combobox中的Datagger中获取项源的值?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (83)

我有一个组合框,项目源是MyTpye类型的集合。我喜欢的类型是这样的:

Class MyClass
{
    long ID;
    string Description;
    decimal Value;
}

对于DisplayMemberPath,我使用Value属性。问题是,它是小数,而不是整数,所以在ID为0的情况下,值也是0。我想在本例中显示0。

因此,我试图以这样的方式使用数据工具:

<ComboBox Name="myComboBox"
          DisplayMemberPath="Value"
          ItemsSource="{Biniding MyCollection}"
          SelectedItem="{Binding Path=MySelectedItem}">
    <ComboBox.Style>
        <Style TargetType="ComboBox">
            <Style.Triggers>
                <DataTrigger Binding="{Binding ???, path=ID}" Value="0">
                    <Setter Property="DisplayMemberPath" Value="{x:Null}"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </ComboBox.Style>
</ComboBox>

问题是,在数据访问器的绑定中,我不知道如何获得集合的项,即Combobox项的SORCE,以及这个项的ID属性。

提问于
用户回答回答于

使用SelectedItem.ID在你的DataTrigger绑定路径

<DataTrigger Binding="{Binding Path=SelectedItem.ID}" Value="0">

或者,你可以将另一个属性添加到MyClass类型decimal?并将其用于DisplayMemberPath。

public decimal? DisplayValue { get => ID == 0 ? default(decimal?) : Value; }

所属标签

可能回答问题的人

  • 女淘日记

    杭州吱吱吱科技 · 站长 (已认证)

    1 粉丝1 提问3 回答
  • 朝夕熊博客

    1 粉丝2 提问3 回答
  • 13火麒麟

    1 粉丝0 提问2 回答
  • 找虫虫

    6 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券