- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试创建一个带有功能齐全的标题的列表,但我似乎只能得到一个带有功能标题的列表,并且所有 ListView 项目都缩减为文本 block 。或者一个 ListView ,其中所有按钮和文本都具有完全样式,但没有正确链接标题。见下图;
我的 ListView 定义对于它们两个都是这样的:
<ListView ItemsSource="{Binding ScenarioComponents}" Style="{StaticResource ListViewWithHeader}" ItemContainerStyle="{StaticResource ListViewWithHeaderItem}">
<ListView.View>
<GridView>
<GridViewColumn Width="Auto" Header="{Binding NameHeader}" DisplayMemberBinding="{Binding Name}"/>
<GridViewColumn Width="Auto" Header="{Binding TypeHeader}" DisplayMemberBinding="{Binding Type}"/>
<GridViewColumn Width="Auto" Header="{Binding InfoHeader}"/>
<GridViewColumn Width="Auto" Header="{Binding ExportHeader}"/>
<GridViewColumn Width="Auto" Header="{Binding DeleteHeader}"/>
</GridView>
</ListView.View>
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="5*"/>
<ColumnDefinition Width="1.5*"/>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Content="{Binding Name}" HorizontalAlignment="Left"/>
<Label Grid.Column="1" Content="{Binding Type}" Background="{StaticResource XVROrange}"/>
<Button Grid.Column="2" Style="{StaticResource BorderLessButton}" Command="{Binding MoreInfoCommand}">
<Button.Content>
<Image Source="/Views/Images/cc2_gui_information_default.png"/>
</Button.Content>
</Button>
<Button Grid.Column="3" Style="{StaticResource BorderLessButton}" Command="{Binding ExportCommand}">
<Button.Content>
<Image Source="/Views/Images/cc2_gui_export_default.png"/>
</Button.Content>
</Button>
<Button Grid.Column="4" Style="{StaticResource BorderLessButton}" Command="{Binding DeleteCommand}">
<Button.Content>
<Image Source="/Views/Images/cc2_gui_b_delete.png"/>
</Button.Content>
</Button>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
样式上的唯一区别是 Headers 工作的样式在 ListViewItem 中使用 GridViewRowPresenter,如下所示:
<Style x:Key="ListViewWithHeaderItem" TargetType="ListViewItem">
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border x:Name="Border" Padding="0" Background="Transparent" BorderBrush="{StaticResource XVR70}" BorderThickness="1">
<GridViewRowPresenter Content="{TemplateBinding Content}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
第二个使用相同的样式,仅使用 ContentPresenter 而不是 GridViewRowPresenter,没有任何修饰。
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border Background="Transparent" BorderBrush="{StaticResource Black47}" BorderThickness="0,0,0,0">
<ContentPresenter />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
出于某种原因,使用 GridViewRowPresenter 意味着我的 ListView.ItemTemplate 的 DataTemplate 中的每个项目 gets turned into a Textblock .我不知道为什么。我真的更愿意继续使用 GridViewRowPresenter,因为这意味着标题绑定(bind)到列表中的项目并与它们和所有内容一起缩放。
有没有人知道我如何设计它才能工作?
最佳答案
您可以将 ItemTemplate 中的模板放入 GridViewColumns 中吗?
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Width="Auto" Header="{Binding NameHeader}" DisplayMemberBinding="{Binding Name}">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Label Grid.Column="0" Content="{Binding Name}" HorizontalAlignment="Left"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<!-- more columns -->
</GridView.Columns>
</GridView>
</ListView.View>
关于c# - WPF GridViewRowPresenter 把所有内容变成Textblocks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45440779/
我刚刚开始学习 WPF,我正在尝试在 ItemsControl 中使用 GridViewRowPresenter 来基本上复制 HTML 中简单表格的功能。 ListView 不合适,因为它是交互式的
我正在尝试创建一个带有功能齐全的标题的列表,但我似乎只能得到一个带有功能标题的列表,并且所有 ListView 项目都缩减为文本 block 。或者一个 ListView ,其中所有按钮和文本都具有完
我试图让我的 ListView 中的文本与单元格的顶部对齐。 这是我到目前为止所做的: 数据绑定(bind)如下:
我是一名优秀的程序员,十分优秀!