我正在使用棱镜。 我的组合框正确填充,但是当我选择一个项目时,不会调用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); }
}
对于我在这里缺少什么的想法?
答案 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}" />