0

私はWPFが初めてで、リストボックスにいくつかのチェックボックス項目を動的に追加しようとしています。次に、ボタンをクリックすると、リストボックスからチェックされた項目を取得しようとしています。しかし問題は、チェックされたアイテムがフェッチされていないことです。以下はリストボックスのコードです

<ListBox HorizontalAlignment="Left" Margin="39.714,179,0,364.318" Name="ListBox1" Width="234" FontSize="16" SelectionMode="Multiple">

            <ListBox.BitmapEffect>
                <DropShadowBitmapEffect />
            </ListBox.BitmapEffect>
            <ListBoxItem>
                <CheckBox Content="Bleeding" Name="CheckBox1"></CheckBox>
            </ListBoxItem>
            <ListBoxItem>
                <CheckBox Content="Bruising or Discoloration" Name="CheckBox2"></CheckBox>
            </ListBoxItem>
<DataTemplate>
                <CheckBox Content="{Binding .}" IsChecked="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}}, Path=IsSelected}" />
            </DataTemplate>
        </ListBox>

そして、これらのチェックされたアイテムをどのようにフェッチするかについてのコード:

Dim l As New List(Of String)
For Each l1 As ListBoxItem In ListBox1.SelectedItems
    l.Add(l1.Content)
Next

これらの質問も参照しました:リストボックスから選択された項目を取得する方法は、WPF にチェックボックスがありますか? チェックされたアイテムを WPFのリストボックスから削除する方法は?

しかし、解決策は見つかりませんでした。これを達成する方法を教えてください。

4

1 に答える 1

1

チェックボックスをオンにしても項目が選択されないため、期待どおりの動作が得られません。

IsCheckedチェックボックスのIsSelectedプロパティをリストボックスアイテムのプロパティにバインドできます。これを行うには、各チェック ボックスのバインドを次のようにする必要があります。

IsChecked="{Binging IsSelected, 
                    RelativeSource={RelativeSouce FindAncestor,
                                                  AncestorType={x:Type ListBoxItem}},
                    Mode="TwoWay"}"
于 2013-05-05T08:47:15.843 に答える