ListView.ItemContainerStyle IsSelected 属性似乎不会影响 WinRT 上的选择

本文关键字:WinRT 影响 选择 IsSelected ItemContainerStyle 属性 ListView | 更新日期: 2023-09-27 17:56:58

在调试问题期间,我试图将IsSelected直接设置为true(无绑定)(最后我尝试使用绑定,但发现即使没有绑定也不起作用)。

以下代码在 WPF 中工作正常(所有选定项),但在 WinRT 上不起作用(执行后未选择任何项)。

这是一个错误/功能吗?

以下 XAML 将在 WPF 窗口和 WinRT 页面中进行编译。

    <ListView SelectionMode="Multiple" HorizontalAlignment="Stretch">
        <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
                <Setter Property="IsSelected" Value="True"/>
            </Style>
        </ListView.ItemContainerStyle>
        <TextBox Width="200"/>
        <TextBox Width="200"/>
        <TextBox Width="200"/>
        <TextBox Width="200"/>
        <TextBox Width="200"/>
    </ListView>

ListView.ItemContainerStyle IsSelected 属性似乎不会影响 WinRT 上的选择

您可以使用 listviewItem 的预定义数据模板解决此问题。

<ListView SelectionMode="Multiple">
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
            <Setter Property="ContentTemplate">
                <Setter.Value>
                    <DataTemplate>
                        <ListViewItem  IsSelected="True" >
                            <TextBox Height="30" Width="200" ></TextBox>
                        </ListViewItem>
                    </DataTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </ListView.ItemContainerStyle>
    <TextBox />
    <TextBox/>
    <TextBox/>
    <TextBox/>
    <TextBox/>        
</ListView>