我的问题是我试图在ComboBox
属性类型和string
viewModel 之间进行绑定,但我做不到
<ComboBox HorizontalAlignment="Stretch"
SelectedItem="{Binding Path=OResultado, Mode=TwoWay}">
<ComboBoxItem Content="Anomalia"/>
<ComboBoxItem Content="Retiro"/>
<ComboBoxItem Content="Retiro con Anomalia"/>
<ComboBoxItem Content="Conforme"/>
</ComboBox>
我尝试使用SelectedItem
and SelectedValue
,SelectedIndex
但它只返回ComboBoxItem
所选索引的索引。我试图做一个Converter
,但我无法让它返回预期的结果。
我想要做的是,当用户从ComboBox
项目的值Content
中选择一个项目时,将其分配给string OResultado
我的 viewModel 的 type 属性。
在这种情况下,有几种方法可以做到这一点,但最简单的方法是动态填充 ComboBox,而不是使用静态值。
这是通过在中创建选项列表
ViewModel
并Binding
使用ItemsSource
del来实现的ComboBox
。查看模型
您可以在此处获取 BindableBase:Apps、Binding、INotifyPropertyChanged 和 BindableBase | XAML | C#,我设置了
OResultado= "Conforme"
.此外,我通过调用属性执行了延迟初始化的技巧,以便能够
viewmodel
从xaml
XAML
已经有了 viewModel 然后你把它添加到你的
xaml
asDataContext
然后绑定作为ViewModel 中公开的属性的
ItemsSource
con绑定,然后您立即分配与in进行绑定ListaOpciones
SelectedItem
OResultado
TwoWay Mode
请记住添加对视图模型命名空间的引用(第 5 行)。
这是所有的了!
正如我一直告诉你的那样,你必须学习 Binding,我推荐
XAML 视频课程,尤其是第 5、7、8 章