wpf - 如何在水平 ListView 中垂直设置元素 - WPF
问题描述
我有这个我无法弄清楚的问题。
我有一个带有成绩的 ListView(特定学生,特定学科)。现在,我有这样的水平 ListView:
<ListView
x:Name="gradeListView"
ItemsSource="{Binding}"
IsSynchronizedWithCurrentItem="True"
SelectionChanged="gradeListView_SelectionChanged"
Grid.ColumnSpan="3"
Grid.Row="2"
Margin="30,153,325,-194"
>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Background="Transparent" Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn DisplayMemberBinding="{Binding Mark}" Header="Ocena" />
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox Tag="{Binding Id}" IsChecked="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListViewItem}}, Path=IsSelected}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView.Columns>
</GridView>
</ListView.View>
这段代码给了我:
我想要的是:
我可以以某种方式将此复选框和标记包装到同一列中的垂直堆叠元素中吗?我自己尝试这样做,但失败了。
请理解,这是我的第一个带有自定义控件等的 WPF 项目。:)
预先感谢您的帮助。
解决方案
如果您不想旋转控件(如WPF 水平 DataGrid中),您可以将两列合并到堆栈面板中:
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="Ocena">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<CheckBox IsChecked="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListViewItem}}, Path=IsSelected}" />
<TextBlock Text="{Binding Mark}"/>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView.Columns>
</GridView>
</ListView.View>
推荐阅读
- python - 在 C++ 应用程序中嵌入 python 环境
- python - Stone Nim游戏说明
- c# - 无法打开“vcxproj”,因为其项目类型 (.vcxproj) 不受支持
- javascript - 如何从匿名函数访问 Vue 实例
- r - 使 SQL 和 R 单元在 R Notebook 中始终一起运行
- python - 如何摆脱嵌套循环并继续外循环的迭代
- java - RSAPubKey 元素中的模值不匹配
- django - 错误消息“mkvirtualenv 未被识别为内部或外部命令”
- android - Android - 使用数据绑定来分配布局?
- c# - 弹性搜索(使用 NEST)在 MatchAll() 上返回 0 个结果