親コンテナが受け取るデータコンテキスト内のフィールドの値に従って、ComboBoxのSelected Itemをバインドする必要があります。ComboBox SelectedItemからDataContext値へのバインド
コンテナはボタンが、それはitemControl
への従業員の有界のリストからitemsourceグリッドのGot *それは
private void Button_Click(object sender , RoutedEventArgs e)
{
GridEmployee.DataContext = ((Button)sender).DataContext;
}
をクリックだとき、それはitemcontrolの項目からDataContextのだ受け取りグリッドですそれらの中で、私は列挙型
public Enum Gender
{
Male,Female
};
foreach(string _gender in Enum.GetNames(Gender))
{
GenderComboBox.Items.Add(_gender);
}
Employeeクラスは、整合性の性別を持ってinitalizeコンボボックスをいくつかのコントロールを保持している
private string gender;
public string Gender
{
get{return gender;}
set
{
gender = value ;
if(PropertyChanged != null)
PropertyChanged(this,new PropertyChangedEventArgs("Gender"));
}
}
GenderComboBox.SelectedItemが有界対象従業員
<ComboBox x:Name="GenderComboBox" SelectedItem="{Binding Gender , Mode=TwoWay}" />
ここで項目が選択されませんもちろんの問題のためのジェンダープロパティの値に制限されます。..
私はコンボボックスの項目が文字列であるために問題が発生する可能性があります。私はEnum値を受け取り、.ToString() を返すカスタムコンバーターに基づいてバインドしようとしています。
フォームの請負業者でXamlParseExceptionがスローされたため、これを確認できませんでした。
なぜ私はそれが起こったのか完全に理解していませんでした。なぜなら、負荷を形成するときに変換する値がないからかもしれません。
私の従業員クラス のプロパティをプロパティの値の文字列表現でコンボボックスにバインドするにはどうすればよいですか?従業員クラスのあなたの性別プロパティは、文字列を返すため
私はちょうど模範を見た誰かが使用した場所 GenderComboBox.ItemSource = Enum.GetValues(typeof(Gender)); なぜアイテムソースを使用するのですか? –
「ここでの問題は当然項目が選択されない」コードでプロパティを設定したときに、UIで項目の1つが選択されていると表示されるか、UIで項目の1つを選択したときにコードにプロパティが設定されると思われますか?私たちはどちらの方向に行くのですか... –
また、コンボボックスの代わりにラジオボタンを使用することをおすすめします。あなたは、このメソッドを使用して列挙型で直接行うことができます:http://stackoverflow.com/questions/397556/wpf-how-to-bind-radiobuttons-to-an-enum –