我目前有一个存在于ListView中的ComboBox。 ComboBox的ItemSource绑定到StaticResource Enum,它使用我想要提供给用户的枚举值填充ComboBox。 ListView本身绑定到一个Observable对象集合,它具有与我试图呈现的枚举相关联的属性。大部分都是有效的。
ComboBox正在显示并展示Enum中的值。甚至Starts填充了我创建的Enum中的第一个项目。但是,我试图让它显示Listview所呈现的Object的实际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;
}
}
这是Enum我现在正在绑定ComboBox ItemSource。
public enum Statuses
{
Enabled,
Disabled,
Deleted
}
据我了解我创建的XAML,ListBox正确绑定到ItemSource并显示我期望的信息。
ComboBox正确绑定到Enum并将DropDown中的那些显示为ComboBox的选项。
我认为SelectedValuePath应该是实体类本身的Status属性,我认为SelectedValue应该是我想要设置的枚举,但显然我在这个假设中是错的。
编辑:想要补充一点,目前这还没有使用MVVM模式。我正在努力实现的目标,但尚未实施。
答案 0 :(得分:0)
有这个工作。 SelectedValue应该已设置为Entity的Status属性,并且SelectedValuePath不必设置为任何内容。我不完全确定为什么,但它正在发挥作用。