0

各 ListViewItem には checkBox が含まれています。

<ListViewItem>
        <CheckBox IsChecked="{x:Null}" Name="myCheckBx1">
            <StackPanel  Margin="10,0,10,0" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Stretch">
                <TextBlock Text="Airline"></TextBlock>
            </StackPanel>
        </CheckBox>
    </ListViewItem>
<ListViewItem>
        <CheckBox IsChecked="{x:Null}" Name="myCheckBx2">
            <StackPanel  Margin="10,0,10,0" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Stretch">
                <TextBlock Text="Fleet"></TextBlock>
            </StackPanel>
        </CheckBox>
    </ListViewItem>

C# で、ListView 内のすべてのチェックボックスを取得したいのですが、どうすればよいですか? 私は次のように何かをしたい:

foreach(ListViewItem item in listView) {
    // Get the checkBox here
}

ありがとうございました。

4

3 に答える 3

3

他に方法がない場合は、LogicalTreeHelper を使用することもできます。

<ListView x:Name="list"> ... </ListView>

コード ビハインド:

var ref = LogicalTreeHelper.GetChildren(list);

IEnumerable を返します。このコードを実行すると、ListViewItems 要素を含む IEnumerable が得られると思います。したがって、このコレクションの各要素に対して、同じパターンを使用します。

var ref = LogicalTreeHelper.GetChildren(list);

そして、Checkbox オブジェクトを取得します。次に、チェックボックスから必要なすべてのプロパティを取得できます。

例:

foreach (object listView in LogicalTreeHelper.GetChildren(list as FrameworkElement))
{
    foreach (object checkbox in LogicalTreeHelper.GetChildren(obj as FrameworkElement))
    {
        // Some code
    }
}
于 2013-06-27T08:48:15.083 に答える
0

すべてのチェックボックスを同じ id で作成します (bcoz は異なる listitem にあります)。次のコードを使用します

foreach(ListViewItem item in listView) {
  CheckBox chk=item.FindControl("checkboxid");
}
于 2013-06-27T08:38:16.043 に答える