0

リストボックスのコンテンツにラジオボタンを配置し、それをバインディングのリストにQuizOption1 バインドしました。プロパティIsSelectedがtrueとして渡された場合、ラジオボタンは正常に機能し、ラジオボタンがチェックされます。クラス定義を以下に示します。

    class QuizOption1
    {
        public int QuizID { get; set; }
        public int QuizOptionID { get; set; }
        public string Description { get; set; }
        public bool IsSelected { get; set; }
    }

チェックされたアイテムをチェックしている間、私は次のコードを使用しています

            var lstItems = (List<QuizOption1>)lst.ItemsSource;
            var selItems = lstItems.Where(op => op.IsSelected == true).FirstOrDefault();

バインディングは次のとおりです。

<ListBox  Name="lst1" Grid.Row="1" >
                        <ListBox.ItemTemplate >
                            <DataTemplate >
                                <RadioButton 
                                    Foreground="#333333"
                                    Background="#ffededed" 
                                    Tag="{Binding QuizOptionID}"
                                    Content="{Binding Description}"
                                    IsEnabled="True"
                                    GroupName="{Binding QuizID}"
                                    IsChecked="{Binding Path=IsSelected}"/>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>

ただし、selItems は常に null です。誰でも理由を教えてもらえますか? 前もって感謝します。

4

1 に答える 1

1

答えは非常に簡単Mode=TwoWayです。バインディングに属性を追加する必要があり、バインディングは次のようになります。とにかく、ありがとう。

IsChecked="{Binding IsSelected, Mode=TwoWay}"/>
于 2013-01-22T11:00:53.183 に答える