2011-01-25 34 views
1

我正在嘗試執行以下操作。 我有一個類:SL3中的Combobox綁定字典<string,string>

public class TextField { 
    public string TextType { get; set; } 
} 

在我看來,我創建了一個清單:在我的XAML

public TextFieldEditControl() 
    { 
     InitializeComponent(); 

     Dictionary<string, string> lst = new Dictionary<string, string>(); 
     lst.Add("SingleLine", "Single line"); 
     lst.Add("MultiLine", "Multi-line"); 
     lst.Add("RichText", "Rich text"); 
     cmbTextType.ItemsSource = lst; 
    } 

我有:

<ComboBox x:Name="cmbTextType" DisplayMemberPath="Value" SelectionChanged="cmbTextType_SelectionChanged" 
      SelectedItem="{Binding Path=TextType, Mode=TwoWay}" /> 

的問題是,當我檢查的價值的TextType屬性,它會返回一個如下所示的字符串:「[SingleLine,Single line]」,而不僅僅是Key。我在哪裏可以將它設置爲只返回鍵/值對的鍵?

+1

我看不出有realted到任何文本字段的源代碼,那麼爲什麼你定義那個類? – 2011-01-25 17:42:00

+0

這只是我班的一部分,我將其定義爲將我的視圖的DataContext設置爲此類,然後將它們添加到列表中。 – Masha 2011-01-25 18:08:51

回答

2

在您的標題您指定的Silverlight 3,不幸的是沒有安東尼提到的SelectedValue和SelectedValuePath性能。這意味着你需要做一個令人討厭的解決方法才能使其發揮作用。我在這篇Silverlight 2時代文章的「The ComboBox Nightmare」一節中討論它:http://www.silverlightshow.net/items/Building-a-Silverlight-Line-Of-Business-Application-Part-5.aspx。這是在Silverlight 2中的痛苦,並沒有固定的Silverlight之前4.

希望這有助於...

克里斯

3

綁定到SelectedValue屬性而不是SelectedItem並指定SelectedValuePath="Key"

<ComboBox x:Name="cmbTextType" SelectedValuePath="Key" DisplayMemberPath="Value" 
    SelectionChanged="cmbTextType_SelectionChanged" 
    SelectedValue="{Binding Path=TextType, Mode=TwoWay}" /> 
+0

感謝您的回覆,但出現以下錯誤:錯誤屬性'SelectedValue'在XML命名空間'http://schemas.microsoft.com/winfx'類型'ComboBox'中不存在/ 2006/XAML /演示」。 – Masha 2011-01-25 18:03:46

相關問題