Почему пользовательский ListView не может иметь свой собственный файл xaml? - PullRequest
0 голосов
/ 06 июня 2018

Почему мой собственный ListView не может иметь свой собственный файл xaml?У меня есть пользовательская кнопка, и она работает с файлом xaml без проблем, но не мой ListView.Основная причина, по которой я хочу использовать этот подход (а не заставлять создавать стиль, помещаемый в файл Generic.xaml), заключается в том, что я хотел бы использовать элемент Resources и разместить все ресурсы, относящиеся к представлению списка, в пределахФайл xaml:

public sealed partial class MyListView : ListView
{
    public MyListView()
    {
        this.InitializeComponent();
    }
}

А вот связанный файл xaml:

<ListView
        x:Class="App1.MyListView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:App1"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        d:DesignHeight="300"
        d:DesignWidth="400">

<ListView.Resources>
    <!-- I would like to place all related resources here instead of having
    them placed in external locations, and then have to open different files to find them. -->
</ListView.Resources>

</ListView>

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Почему бы не разместить ресурсы на странице или внутри ListView, а не получить собственный элемент управления?

<Page
x:Class="ListViewResources.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:ListViewResources"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">

<Page.Resources>
    <!-- Place all related resources here instead of having them placed in external locations, and then have to open different files to find them. -->
</Page.Resources>


<ListView x:Name="MyListView">
    <ListView.Resources>
        <!-- Or place related resources here -->
    </ListView.Resources>
</ListView>

</Page>
0 голосов
/ 06 июня 2018

Хотя я ожидаю, что это также будет работать, похоже, что эта проблема присутствует, и рекомендуется использовать шаблонный элемент управления вместо .

Я полагаю, проблема в том, что назначениекомпилятор не может сгенерировать допустимое присваивание свойству Items элемента управления, которое он пытается построить из содержимого элемента.Даже если элемент немедленно закрывается, это кажется проблемой.

...