2

現在RadioButton、ジェネリック型にバインドされているがあります...TestObject<T>

このオブジェクトには、1または0のいずれかであるValueというプロパティがあります。次の値を保持するMyListaというプロパティがあります。Dictionary<T,String>

   INT          String
    0            "This is the first option"
    1            "This is the second option"

にバインドするのに問題RadioButtonがありMyListます。現在、IsCheckをValueにバインドしています(true / falseを返すコンバーターを使用)。私の最大の問題は、辞書とそれをRadioButtonコントロールにバインドしRadioButtonて、画面に2つのオプションが表示されるようにする方法です。

何か案は?

4

2 に答える 2

1

Dictionary の代わりに KeyValuePairs または Tuples のリストを使用しないのはなぜですか?

次に、ItemsControlを使用して、RadioButton を DataTemplate に配置し、ItemsSource を KeyValuePairs のリストにバインドできます。

于 2012-10-24T06:38:16.210 に答える
0

実行時にラジオ ボタンを入力してみてください。

WPF を使用した例を次に示します。

    private RadioButton CreateRadioButton(RadioButton rb1, string content, Thickness margin, string name)
    {
        //private RadioButton CreateRadioButton(RadioButton rb1, string content, Thickness margin, string name)
        // We create the objects and then get their properties. We can easily fill a list.
        //MessageBox.Show(rb1.ToString());

        Type type1 = rb1.GetType();
        RadioButton instance = (RadioButton)Activator.CreateInstance(type1);

        //MessageBox.Show(instance.ToString()); // Should be the radiobutton type.
        PropertyInfo Content = instance.GetType().GetProperty("Content", BindingFlags.Public | BindingFlags.Instance);
        PropertyInfo Margin = instance.GetType().GetProperty("Margin", BindingFlags.Public | BindingFlags.Instance);
        PropertyInfo Name = instance.GetType().GetProperty("Name", BindingFlags.Public | BindingFlags.Instance);
        // This is how we set properties in WPF via late-binding.
        this.SetProperty<RadioButton, String>(Content, instance, content);
        this.SetProperty<RadioButton, Thickness>(Margin, instance, margin);
        this.SetProperty<RadioButton, String>(Name, instance, name);

        return instance;
        //PropertyInfo prop = type.GetProperties(rb1);
    }

    // Note: You are going to want to create a List<RadioButton>
于 2013-10-18T00:13:12.970 に答える