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 回答