无法通过ViewModel在ComboBox上设置SelectedItem

Openshac的

我有一个绑定到状态列表的组合:

public enum Status
{
    [Description(@"Ready")]
    Ready,

    [Description(@"Not Ready")]
    NotReady
}

我正在使用转换器在组合框中显示枚举的描述,该组合基于此处的示例:https : //stackoverflow.com/a/3987099/283787

public class EnumConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value == null)
        {
            return DependencyProperty.UnsetValue;
        }

        var description = GetDescription((Enum)value);

        return description;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var enumValue = GetValueFromDescription(value.ToString(), targetType);

        return enumValue;
    }
...

我绑定到视图中的combox框:

<ComboBox
    ItemsSource="{Binding Statuses}"
    SelectedItem="{Binding SelectedStatus, Converter={StaticResource EnumConverter}}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Path=., Converter={StaticResource EnumConverter}}" />
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

我的视图模型包含以下内容:

public ObservableCollection<Status> Statuses { get; set; } = new ObservableCollection<Status>(new List<Status> { Status.Ready, Status.NotReady });

private Status selectedStatus = Status.Ready;
public Status SelectedStatus
{
    get
    {
        return this.selectedStatus;
    }

    set
    {
        this.selectedStatus = value;
        this.NotifyPropertyChanged(nameof(this.SelectedStatus));
    }
}

问题

  1. 视图模型显示时,该组合为空。
  2. SelectedStatus即使设置了binding,我也无法设置从视图模型Mode=TwoWay

如何在启动时从视图模型中成功选择组合中的项目?

毫米8

不要使用转换器进行SelectedItem绑定:

<ComboBox
    ItemsSource="{Binding Statuses}"
    SelectedItem="{Binding SelectedStatus}">
 ...

SelectedItem属性应绑定到Status源属性,前提是该ItemsSource属性绑定到ObservableCollection<Status>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用MVVM绑定ComboBox SelectedItem

来自分类Dev

ComboBox的xml绑定无法识别SelectedItem

来自分类Dev

WPF ComboBox.SelectedValue为null,但.SelectedItem不是;已设置SelectedValuePath。为什么?

来自分类Dev

WPF ComboBox:将SelectedItem设置为不在ItemsSource->绑定奇数中的项目

来自分类Dev

无法通过操作设置Cookie

来自分类Dev

无法在PostConstruct上设置Cookie

来自分类Dev

无法在XmlTextReader上设置设置?

来自分类Dev

如何将SelectedItem设置为ComboBox?

来自分类Dev

从对象设置ComboBox的SelectedItem

来自分类Dev

MVVM ComboBox SelectedIndex与SelectedItem

来自分类Dev

反应:无法通过表单选择上的onchange事件处理程序设置状态

来自分类Dev

在ComboBox中未显示SelectedItem

来自分类Dev

无法在Kubernetes上设置Calico

来自分类Dev

无法通过ngOnInit方法在formControl上设置值

来自分类Dev

如何在ComboBox.SelectedItem上显示TreeView!= null

来自分类Dev

无法将数据设置为comboBox选项

来自分类Dev

通过其他View或ViewModel设置UserControl的属性

来自分类Dev

ComboBox SelectedItem不更新

来自分类Dev

在DataGridViewComboBoxCell中设置SelectedItem

来自分类Dev

通过列表从其下一个外观绑定中删除以前的ComboBox SelectedItem

来自分类Dev

Java Swing ComboBox无法通过MCVE *编辑

来自分类Dev

从对象设置ComboBox的SelectedItem

来自分类Dev

无法在OpenVPN上设置DNS

来自分类Dev

MVVM ComboBox SelectedIndex与SelectedItem

来自分类Dev

无法通过设置NAT路由在VirtualBox上ping Google

来自分类Dev

使用自定义 ItemTemplate 时未设置 ComboBox SelectedItem

来自分类Dev

选择通过 ComboBox 设置的设置

来自分类Dev

ComboBox 中的 SelectedItem 绑定

来自分类Dev

ComboBox.SelectedItem 为空

Related 相关文章

热门标签

归档