Свойство BasedOn не работает с ListView - PullRequest
4 голосов
/ 11 апреля 2010

Когда я использую следующий код, он работает, потому что я использую ListBox

<UserControl.Resources>
    <Style BasedOn="{StaticResource {x:Type ListBox}}" TargetType="{x:Type ListBox}">
        <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        <Setter Property="Background" Value="Transparent" />
    </Style>
</UserControl.Resources>

Но когда я использую следующий код для ListView, я получаю предупреждение / исключение

<UserControl.Resources>
    <Style BasedOn="{StaticResource {x:Type ListView}}" TargetType="{x:Type ListView}">
        <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        <Setter Property="Background" Value="Transparent" />
    </Style>
</UserControl.Resources>

"Ссылка на StaticResource 'System.Windows.Controls.ListView' не найдена."

Почему и как это решить? Я хочу функциональность ListView.

Ответы [ 3 ]

3 голосов
/ 12 апреля 2010

Попробуйте это:

<Style BasedOn="{StaticResource {x:Type ListBox}}" TargetType="{x:Type ListView}">
2 голосов
/ 11 апреля 2010

A ListView не обрабатывает представление, оно делегирует это свойству View, которое обычно равно GridView. Попробуйте установить стиль, используя тип GridView в качестве ключа.

0 голосов
/ 30 марта 2011

У меня такая же проблема. Мой сценарий немного сложен: app1 ссылается на lib1 и lib2, lib1 определяет стиль списка, lib2 определяет пользовательский элемент управления, содержащий просмотр списка, и не имеет представления о стиле просмотра списка. app1 добавляет словарь ресурсов:

в lib2, я определяю вид списка следующим образом:

во время разработки я получил ошибку: Ссылка на StaticResource 'System.Windows.Controls.ListView' не найдена. но во время выполнения это работает хорошо. Я думаю, это ошибка VS2008. Я попробовал это на VS2010, который не имеет этой ошибки времени проектирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...