0

リストボックスオブジェクトに関するxamlコードがあります:

<ListBox x:Name="FirstListBox" Margin="0,0,-12,0" ItemsSource="{Binding Items}" SelectionChanged="FirstListBox_SelectionChanged">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel>
                                <Grid>
                                    <TextBlock Text="{Binding LineOne}" TextWrapping="NoWrap" Margin="50,0,0,0" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
                                    <TextBlock Text="{Binding LineTwo}" TextWrapping="NoWrap" Margin="12,60,0,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
                                    <CheckBox VerticalAlignment="Top" Margin="0,-5,0,0"/>
                                </Grid>                                
                            </StackPanel>                            
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>

私はコードでリストボックス項目を取得していました:

ListBoxItem item = this.list.ItemContainerGenerator.ContainerFromIndex(2) as ListBoxItem;

しかし、このリストボックス項目のすべての項目を取得する方法がわかりません(テキストブロックとチェックボックスオプションを含む)。

私を助けてください。皆さんありがとう。

4

1 に答える 1

1

理想的には、チェックボックスを項目データ モデルのプロパティにバインドする必要があるため、たとえば...

public string LineOne { get; set; }
public string LineTwo { get; set; }
public bool MyBooleanValue { get; set; }

その後

<ListBox x:Name="FirstListBox" Margin="0,0,-12,0" ItemsSource="{Binding Items}" SelectionChanged="FirstListBox_SelectionChanged">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <Grid>
                    <TextBlock Text="{Binding LineOne}" TextWrapping="NoWrap" Margin="50,0,0,0" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
                    <TextBlock Text="{Binding LineTwo}" TextWrapping="NoWrap" Margin="12,60,0,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
                    <CheckBox Checked="{Binding MyBoolValue, Mode=TwoWay}" VerticalAlignment="Top" Margin="0,-5,0,0"/>
                </Grid>                                
            </StackPanel>                            
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

次に、現在見ているアイテムの DataContext を (タップ メソッドなどで) 引き戻すことができます。または、「アイテム」コレクションを解析するときに、すべてのチェックボックスの状態が既に子オブジェクトにあります。

于 2012-04-23T12:43:05.037 に答える