2013-02-28 90 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

相關問題