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

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

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

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

即使MyProp最初设置为“1”或“2”,组合框的文本也是空的。未选择任何项目。如果我在运行时以用户身份选择其中一项,则该值不会写回MyProp
但是绑定和ViewModel工作正常,因为具有相同TwoWay-Binding的TextBox在两个方向上都工作正常:

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

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

30byixjq

30byixjq1#

由于您有ComboBoxItem作为项,因此需要将Content属性作为目标。这应该是可行的:

  1. <ComboBox
  2. SelectedValue="{Binding MyProp, Mode=TwoWay}"
  3. SelectedValuePath="Content">
  4. <ComboBoxItem Content="1" />
  5. <ComboBoxItem Content="2" />
  6. </ComboBox>

但是,您可以避免显式使用ComboBoxItem,并使其变得简单:

  1. <ComboBox
  2. SelectedValue="{Binding MyProp, Mode=TwoWay}">
  3. <x:String>1</x:String>
  4. <x:String>2</x:String>
  5. </ComboBox>

相关问题