Из 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;
}
Это хорошее решение, но в настоящее время я работаю с шаблоном MVP (Model-View-Presenter), что означает, что в этом проекте я не использую xaml. Мой вид почти пуст. спасибо! –
Одна вещь, последняя строка вашего кода неверна. Это должно быть так: «listView.ItemsPanel = panelTemplate;» «вместо listView.ItemsPanel = template;» –
MVP - не рекомендуемый patern при использовании xaml, вам действительно стоит подумать о переходе на MVVM, это многое сделает вам легче. –