我很难找到绑定到ComboBox的SelectedItem属性的正确语法。这是我试图用于绑定的XAML。你在哪里看到SelectedItem.Mode是我遇到困难的想法。请注意,CurrentMode位于ViewModel中,与SelectedItem.Mode
具有相同的类型<ComboBox SelectedItem.Mode="{Binding Path=CurrentMode, Mode=TwoWays}">
<ComboBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding ImageSource}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
<local:ModeItem Mode="Free" ImageSource="pencil.png"/>
<local:ModeItem Mode="Arrow" ImageSource="arrow.png"/>
</ComboBox>
本地:ModeItem看起来像这样
public class ModeItem : DependencyObject, INotifyPropertyChanged
{
public static readonly DependencyProperty ModeProperty = DependencyProperty.Register("Mode", typeof(AnnotationMode), typeof(ModeItem));
public AnnotationMode Mode
{
get { return (AnnotationMode)GetValue(ModeProperty); }
set { SetValue(ModeProperty, value); }
}
public string ImageSource { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
}
我正在使用MVVM并尝试将ViewModel的AnnotationMode(CurrentMode)绑定到ComboBox的SelectedItem的AnnotationMode(模式)
答案 0 :(得分:0)
就这样做 SelectedItem =“{Binding CurrentMode}
你不必做你正在做的所有这些额外的事情。注意您需要使组合框的datacontext指向您的viewmodel。
编辑: - 你应该能够做到这一点
SelectedValue="{Binding CurrentMode, Mode=TwoWay}"
SelectedValuePath="Mode"