如何在 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);
我希望这会有所帮助。
但对于单个ListViewItem
的Template
,您应该在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# WPF(运行时)中将 Dependency Property propertymetadata 设置为 LinearGradientBrush?