prism combobox selecteditem没有解雇

时间:2018-02-24 01:32:05

标签: c# mvvm prism

我正在使用棱镜。 我的组合框正确填充,但是当我选择一个项目时,不会调用selecteditem绑定。

这是代码。

<ComboBox x:Name="MillLathe"   HorizontalAlignment="Left" Margin="115,175,0,0" VerticalAlignment="Top" Width="120" ItemsSource="{Binding MachineType}" DisplayMemberPath="Machine" SelectedItem="Binding Path=SelectedMachine" />

在Viewmodel中:

        private ObservableCollection<MachineType> _machineType = new ObservableCollection<MachineType>();
    public ObservableCollection<MachineType> MachineType
    {
        get
        {
            return _machineType;
        }
        set
        {
            SetProperty(ref _machineType, value);
        }
    }

    private MachineType _selectedMachine;
    public MachineType SelectedMachine
    {
        get { return _selectedMachine; }
        set { SetProperty(ref _selectedMachine, value); }
    }

对于我在这里缺少什么的想法?

2 个答案:

答案 0 :(得分:0)

我从来没有使用过Prism,所以如果我不在这里,我会道歉:)

要从目标(ComboBox)更新源(SelectedMachine),您需要设置 UpdateSourceTrigger 属性,如下所示:

<ComboBox SelectedItem="{Binding Path=SelectedMachine, UpdateSourceTrigger=PropertyChanged}"/>

如果您想要从源代码更新目标,我找到了关于在Prism中实现INotifyPropertyChanged的教程here

答案 1 :(得分:0)

您已在视图中忘记了花括号。只有这个 。将选定项目的值放在大括号中:

<ComboBox x:Name="MillLathe"   
          HorizontalAlignment="Left"
          Margin="115,175,0,0" 
          VerticalAlignment="Top"
          Width="120" 
          ItemsSource="{Binding MachineType}"
          DisplayMemberPath="Machine" 
          SelectedItem="{Binding Path=SelectedMachine}" />