如何在 C# 中将模板设置为 ListViewItem

Posted

技术标签:

【中文标题】如何在 C# 中将模板设置为 ListViewItem【英文标题】:How to set a Template to a ListViewItem in C# 【发布时间】:2017-12-03 22:34:17 【问题描述】:

我需要按照哪些步骤在 XAML 上创建 ItemTemplate 并将此模板设置为 C# 代码中的 ListViewItem。 我知道 ListViewItem 具有我可以为其分配一个属性的模板,但我没有成功。

【问题讨论】:

向我们展示您的尝试 @NikhilAgrawal 我找不到尝试任何方法的方法。我尝试在 XAML 中设置 ListView.ItemTemplate,但这根本不起作用。 你为什么需要这样做?? @Jessica 我正在为我的一个应用程序构建一个选项卡管理,每个选项卡都是一个 ListViewItem。 【参考方案1】:

在加载ListView 中的项目之前,您需要设置ItemTemplate

<Page.Resources>
    <DataTemplate x:Name="listViewItemTemplate">
        <TextBlock Text="Binding"/>
    </DataTemplate>
</Page.Resources>
<Grid Background="ThemeResource ApplicationPageBackgroundThemeBrush">
        <ListView x:Name="listview"/>
</Grid>

在代码隐藏中:

public MainPage()
    
        this.InitializeComponent();
        listview.ItemTemplate = listViewItemTemplate;
        for (int x = 0; x < 10; x++)
        
            listview.Items.Add("Item " + x);
        
    

我希望这会有所帮助。

但对于单个ListViewItemTemplate,您应该在SDK 文件夹的generic.xaml 文件中查找Style。它由 Microsoft 作为默认资源文件提供。

您可以从上述文件中复制默认模板,也可以在您的页面资源中创建一个新的Style 属性并将此样式分配给您的ListViewItem。看看here。

【讨论】:

这绝对是有帮助的,但我需要改变一些事情才能解决。当我试图设置 ListViewItem.Template(不是 ItemTemplate)时,我需要使用 ControlTemplate 而不是 DataTemplate。代码找不到 listViewItemTemplate 所以我写了这个:(ControlTemplate)this.Resources["listViewItemTemplate"] 之后它工作得非常好!谢谢! 是的,没错。要访问页面资源,需要通过 resources 属性获取。

以上是关于如何在 C# 中将模板设置为 ListViewItem的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 标记中将 Frame 的高度设置为等于其宽度?

如何在spring jdbc模板中将自动提交设置为false

如何在 C# 中将 HTML 设置为剪贴板?

如何在 C# WPF(运行时)中将 Dependency Property propertymetadata 设置为 LinearGradientBrush?

C#中Chart控件中将X轴设置为time时间格式后,如何设置时间范围

如何在 Objectarx C# 中将椭圆转换为折线