WPF. Как мне создать много LIstViews с одинаковым видом - PullRequest
1 голос
/ 22 мая 2010

Я определил представление списка в моем недавнем проекте и понял, что буду использовать больше списков, выглядящих одинаково и имеющих одинаковые столбцы. Так как я новичок в WPF, мне интересно, как это лучше всего сделать. Это создать пользовательский контроль? Использовать стили? Я пытался использовать стили, но это не сработало так, как я надеялся. Я попытался установить свойство «Вид», используя стиль, как это.

<Style x:Key="ListViewStyle" TargetType="{x:Type ListView}">
    <Setter Property="View">
        <ListView.View>
            <GridView>

Но это не сработало, поэтому я спрашиваю ваше мнение ?! Спасибо.

Ответы [ 3 ]

1 голос
/ 23 мая 2010

Вам не хватает тега Setter.Value, и вам не нужен тег ListView.View:

<Style x:Key="ListViewStyle" TargetType="{x:Type ListView}">
    <Setter Property="View">
        <Setter.Value>
            <GridView>
0 голосов
/ 23 мая 2010

Еще одна возможность, которая не обсуждалась: вы можете определить ListView в DataTemplate и использовать это DataTemplate для отображения различных коллекций, которые вы будете показывать.Например, если все ваши коллекции элементов имеют тип MyCollectionType, вы можете сделать это:

<DataTemplate DataType="myNamespace:MyCollectionType">
    <ListView ItemsSource="{Binding Items}">
      <!-- define everything here -->
    </ListView>
</DataTemplate>

...

<StackPanel>
   <ContentControl Content="{Binding OneCollection}"/>    
   <ContentControl Content="{Binding AnotherCollection"/>
</StackPanel>

и свойства OneCollection и AnotherCollection в вашей модели представления будут отображаться как ListView элементы управления с одинаковым расположением.

0 голосов
/ 22 мая 2010

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

Проблема, которую я вижу из вашего краткого фрагмента кода, заключается в том, что вам не нужен элемент ListView.List (синтаксис A.B XAML означает, что вы устанавливаете свойство B в A).

<Style ...
  <Setter Property="PropertyName">
     <ValueObj/>
  </Setter>
  <Setter Property="View">
     <GridView ... />
  </Setter>
</Style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...