Как обрабатывать коллизии пространства имен при использовании TreeView в приложениях UWP - PullRequest
0 голосов
/ 26 апреля 2019

Исключение выдается при установке «ItemContainerStyle» в «StaticResource TreeViewItemStyle», который определен в generic.xaml.Сообщение указывает, что стиль использует «Windows.UI.Xaml.Controls.TreeViewItem» вместо «Microsoft.UI.Xaml.Controls.TreeViewItem».

Я удалил назначение ItemContainerStyle, чтобы подтвердить, что это строка, вызывающаяисключение.

<ControlTemplate TargetType="muxcontrols:TreeView">
                        <muxcontrols:TreeViewList x:Name="ListControl"
                                      ItemTemplate="{StaticResource TreeViewItemDataTemplate}"
                                      ItemContainerStyle="{StaticResource TreeViewItemStyle}">

Проблема кажется очевидной, но правильное решение уклоняется от меня.Чтобы использовать стиль, нужно ли начинать добавлять "muxcontrols:" в файле generic.xaml?Это кажется плохой идеей.Нужно ли воссоздавать стиль и поведение отдельно?

1 Ответ

0 голосов
/ 29 апреля 2019

Я пытался (минимальная сборка 17763 и целевая сборка 17134), чтобы устранить проблемы с версией, но, похоже, мне нужно 17763 для обоих.Хотя я не устанавливаю ItemsSource.Я пытаюсь использовать технику, использованную в документах: "docs.microsoft.com/en-us/windows/uwp/design/…" для примера TreeView Music Library.Минимальная версия моего реального проекта - 16299.

Итак, проблема была ясна.Элемент управления TreeView представлен в сборке 17134. Если вы используете API-интерфейсы платформы, вам необходимо убедиться, что целевой версией вашего проекта является 17134 или выше.Так как вы сказали, что хотите установить ItemsSource.Для ItemsSource и связанных с ним API требуется Windows 10, версия 1809 ( SDK 17763 ) или более поздняя, ​​поэтому необходимо указать целевую версию вашего проекта 17763.

Затем вы можете напрямую использоватьэлемент управления TreeView, подобный следующему:

<TreeView></TreeView>

Если вы используете API-интерфейсы библиотеки Windows * , вам необходимо выполнить Начало работы с библиотекой интерфейса Windows * документ для загрузки и установки библиотеки пользовательского интерфейса Windows.Обратите внимание:

Важно: Для использования WinUI 2.1 минимальная версия вашего проекта должна быть 14393 или выше, а целевая версия должна быть 17763 или выше.

Тогда, еслиВы хотите использовать элемент управления TreeView в библиотеке WinUI, на своей странице XAML добавить ссылку вверху своей страницы

xmlns:controls="using:Microsoft.UI.Xaml.Controls"

На странице XAML вы можете непосредственно ввести следующее:

<controls:TreeView></controls:TreeView>
...