[英]How can I set the initial SelectedItem for a ComboBox bound to an enum, to a Value of an object containing that enum?
我目前在ListView中存在一个ComboBox。 该ComboBox的ItemSource绑定到一个StaticResource枚举,该枚举用我想提供给用户的枚举值填充ComboBox。 ListView本身绑定到一个Observable Objects对象,该对象具有与我要呈现的枚举关联的属性。 大部分工作正常。
ComboBox正确显示并显示了Enum中的值。 它甚至开始填充我创建的Enum中的第一项。 但是,我试图获取它以显示Listview所呈现的对象的实际Enum值,而当前并未这样做。 我相信将我的SelectedValue和SelectedValuePaths设置为什么有问题,但是我很难找出确切的问题。
这是我现在用于ComboBox的XAML。
<DataTemplate>
<ComboBox ItemSource={Binding Source={StaticResource dataFromStatusesEnum}}
SelectedValue="{Binding JMessage3, Mode=TwoWay"}"
SelectedValuePath="Statuses.Status"
</ComboBox>
</DataTemplate>
这是我正在填充ListView绑定到的ObservableCollection的类。
public class Entity
{
public string Name {get; set;}
public Statuses Status {get; set;}
Public Entity()
{
this.Name = "Test";
this.Status = Statuses.Disabled;
}
}
这是我现在将ComboBox ItemSource绑定到的枚举。
public enum Statuses
{
Enabled,
Disabled,
Deleted
}
据我了解我已经创建的XAML,ListBox正确绑定到ItemSource并显示我期望的信息。
ComboBox已正确绑定到Enum,并在DropDown中将其显示为ComboBox的选项。
我认为SelectedValuePath应该是Entity Class本身的Status属性,并且我认为SelectedValue应该是我希望将其设置为枚举的类型,但是显然我在这种假设下是错误的。
编辑:想补充一点,这是当前不使用MVVM模式。 我正在为最终的目标而努力,但目前尚未实现。
得到了这个工作。 应该将SelectedValue设置为实体的Status属性,并且不必将SelectedValuePath设置为任何值。 我不完全确定为什么,但是它能正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.