小编sjb*_*sjb的帖子

如何在 UWP 中的多选 ListView 中设置复选框样式

在 UWP 中,我使用带有项目模板的多选 ListView,如下所示:

    <ListView 
        ItemsSource="{x:Bind ItemsSource, Mode=OneWay}" 
        ItemTemplate="{x:Bind LineTemplate, Mode=OneWay}"
        SelectionMode="Multiple"
        >
    </ListView>
Run Code Online (Sandbox Code Playgroud)

问题是UWP添加的复选框的样式。在我程序的其余部分中,我有自己的复选框样式,而 ListView 中的样式不匹配。

我看不到任何设置复选框样式的方法,也看不到 ListViewItem 模板中 ListViewItemPresenter 的任何代码。

也许我可以设置 IsMultiSelectCheckBoxEnabled="False",然后在 ListViewItem 中包含我自己的 CheckBox。我看到了如何在 ListViewItem 样式中将 CheckBox 添加到模板中:我可以将它放在 ListViewItemPresenter 之前(例如使用水平 StackPanel)。然后我可以绑定 IsChecked="{TemplateBinding IsSelected}"。

但是,如果我这样做,则会出现异常“ListViewItemPresenter 只能用作 ListViewItem 模板中的第一个子项”。

有没有或多或少简单的方法来做到这一点?

--sjb

PS 显然 ListViewItemPresenter 非常特别......我的印象是它内置了很多优化,不应该只是扔掉。

checkbox styles listviewitem multi-select uwp

0
推荐指数
1
解决办法
1398
查看次数

标签 统计

checkbox ×1

listviewitem ×1

multi-select ×1

styles ×1

uwp ×1