2011-01-25 11 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]"のような文字列を返します。キー/値ペアのキーだけを返すように設定することはできますか?

+1

を支援まで、それは、Silverlight 2の痛みだった、と固定されていませんそのクラスを定義する? –

+0

これは私のクラスのちょうど一部です。私はこのクラスに私のビューのDataContextを設定するために定義し、次にそれらをリストに追加しています。 – Masha

答えて

2

あなたは、残念ながらアンソニーは言及SelectedValueのとSelectedValuePath性質を持っていなかったのSilverlight 3を、指定されました。つまり、動作させるには厄介な回避策を実行する必要があります。このSilverlight 2の時代の記事「ComboBox Nightmare」のhttp://www.silverlightshow.net/items/Building-a-Silverlight-Line-Of-Business-Application-Part-5.aspxで、私はここでそれについて議論します。 Silverlightの4

ホープこれは私がそこのTextFieldにrealtedすべてのソースコードを見ることができないので、なぜあなたは...

クリス

+0

ありがとう、クリス!それはまさに私が探しているものですが、そのページのバリューコンバータのソースコードを見つけることができません。 KeyValuePairをKeyだけに変換する方法についてのアイデアはありますが、文字列値から変換する方法がわかりません。説明していただけますか? – Masha

+0

こんにちはマシャ。ページのすべてのコード(上端付近)を含むサンプルアプリケーションをダウンロードするためのリンクがあります。または、ここをクリックしてください:http://www.silverlightshow.net/Storage/Sources/AdventureWorksLOB_Part5.zip :) –

+0

ああ、私はそれを見つけた。ごめんなさい。はい、私はこのソリューションと一緒に行くつもりだと思いますが、これは他の方法よりも大変な作業です。ありがとう、もう一度! – Masha

3

SelectedItemの代わりにSelectedValueプロパティにバインドし、SelectedValuePath="Key"と指定します。あなたのタイトルで

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

ご回答ありがとうございますが、次のエラーが表示されます。エラー 'SelectedValue'プロパティは、XML名前空間の 'ComboBox'タイプに存在しません。 'http://schemas.microsoft.com/winfx/2006/xaml/presentation 'を参照してください。 – Masha

+0

@Masha:申し訳ありませんが、あなたのタイトルでSL3を見逃しました。これらは、Chrisが指摘しているように、SL4に追加されました。 – AnthonyWJones

+0

これは、私の会社が最終的にアップグレードすることを決定したとき、未来のことを知っておくと良いことです。ありがとう、アンソニー! – Masha

関連する問題