2013-02-28 86 views
0

我很难找到绑定到ComboBox的SelectedItem属性的正确语法。这是我尝试用于绑定的XAML。你在哪里看到SelectedItem.Mode是我有困难的想法。需要注意的是CURRENTMODE是在视图模型,并具有相同类型SelectedItem.Mode绑定到ComboBox的SelectedItem属性

<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并试图将AnnotationMode绑定(CURRENTMODE)视图模型的对ComboBox的的SelectedItem的AnnotationMode(模式)的

回答

0

只是这样做 的SelectedItem =“{结合CURRENTMODE}

你不必做所有这些额外的事情。注意您需要使组合框的datacontext指向您的视图模型。

编辑: - 你应该能够做到这一点

SelectedValue="{Binding CurrentMode, Mode=TwoWay}" 
SelectedValuePath="Mode" 
+0

但不会只是尝试的SelectedItem(类型的地方:ModeItem)绑定到CURRENTMODE(类型AnnotationMode)?这会工作吗?谢谢,但不用担心datacontext被加载。 – mikemags1 2013-02-28 18:03:47

+0

这是你控制的代码,因为如果这是为什么不只是创建你正在尝试绑定的类型的属性。为什么你想复杂化xaml中的子类化?请注意,你对我的答案会发生什么是正确的。 – TYY 2013-02-28 18:36:51

+0

我想我爱你 – mikemags1 2013-02-28 19:49:18

相关问题