WinUI3中绑定ComboBox中的选中项

问题描述 投票:0回答:1

我在 WinUI3 中有一个组合框,其中添加了两个项目手动:

<ComboBox Width="200" SelectedItem="{Binding MyProp, Mode=TwoWay}">
   <ComboBoxItem Content="1"/>
   <ComboBoxItem Content="2"/>
</ComboBox>

即使

MyProp
最初设置为“1”或“2”,组合框的文本也是空的。未选择任何项目。如果我在运行时作为用户选择这些项目之一,该值不会写回
MyProp

但是绑定和 ViewModel 工作正常,因为具有相同 TwoWay-Binding 的 TextBox 在两个方向上都工作正常:

<TextBox Text="{Binding MyProp, Mode=TwoWay}"></TextBox>

我是否也必须通过视图模型中的列表来绑定项目本身?希望在 XAML 中定义两个 ComboboxItem 就足够了。

c# xaml combobox winui-3 winui
1个回答
0
投票

由于您有

ComboBoxItem
作为项目,因此您需要定位
Content
属性。这应该有效:

<ComboBox
    SelectedValue="{Binding MyProp, Mode=TwoWay}"
    SelectedValuePath="Content">
    <ComboBoxItem Content="1" />
    <ComboBoxItem Content="2" />
</ComboBox>

但是您可以避免显式使用

ComboBoxItem
并使其变得简单:

<ComboBox
    SelectedValue="{Binding MyProp, Mode=TwoWay}">
    <x:String>1</x:String>
    <x:String>2</x:String>
</ComboBox>
© www.soinside.com 2019 - 2024. All rights reserved.