有人知道如何将以下xaml代码翻译成C#?
<ListView>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
答案 0 :(得分:0)
我不确定为什么要在代码中创建它,将ItemPanelTemplate放在页面或App.xaml中的资源中可能会更好。
否则在这里如何通过代码创建它:
ItemsPanelTemplate template=new ItemsPanelTemplate();
var str = "<ItemsPanelTemplate xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\">"
+"<WrapGrid Orientation=\"Horizontal\" />"
+"</ItemsPanelTemplate>";
ItemsPanelTemplate panelTemplate = (ItemsPanelTemplate)Windows.UI.Xaml.Markup.XamlReader.Load(str);
ListView listView=new ListView();
listView.ItemsPanel = panelTemplate ;
答案 1 :(得分:0)
从this链接我得出的结论是ItemsPanelTemplate
主要属于XAML,因为您无法从简单的运行时API更改它们。因此,您需要坚持使用XAML声明,或者使用XamlReader
加载XAML。
using Windows.UI.Xaml.Markup;
private ListView GetListView()
{
const string xaml = @"<ListView xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid Orientation=""Horizontal"" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>";
var lv = (ListView)XamlReader.Load(xaml);
return lv;
}