XAML 在WinUI3中绑定组合框中的选定项

zf2sa74q  于 2023-09-28  发布在  其他
关注(0)|答案(1)|浏览(148)

我有一个组合框在WinUI 3与两个项目手动添加:

<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就足够了。

30byixjq

30byixjq1#

由于您有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>

相关问题