【问题标题】:How to set elements vertically in horizontal ListView - WPF如何在水平 ListView 中垂直设置元素 - WPF
【发布时间】:2018-11-19 19:47:26
【问题描述】:

我有这个问题,我无法弄清楚。

我有一个带有成绩的 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 listview


【解决方案1】:

如果您不想旋转控件(如WPF horizontal 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>

【讨论】:

  • 我一直在寻找这个解决方案。完美运行。非常感谢。 :)
猜你喜欢
  • 2023-03-05
  • 2015-12-13
  • 2013-10-27
  • 2017-10-17
  • 1970-01-01
  • 1970-01-01
  • 2012-04-22
  • 2011-03-19
相关资源
最近更新 更多