2010-05-22 42 views
1

许多列表视图,我在我最近的项目定义的列表视图,并意识到,我会用更多的列表视图看完全相同,具有相同solumns。因为我对WPF很陌生,所以我很好奇最好的方法来做到这一点。它是创建一个用户控件?使用样式?我尝试过使用样式,但它没有像我希望的那样工作。我试图用style来设置“View”属性,就像这样。WPF。如何创建具有相同的外观

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

但它没有工作,所以我要求您的意见?谢谢。

回答

1

你错过了Setter.Value标签,你不需要ListView.View标签:

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

是的,你应该继续和所有的类似的控件把公共属性成风格,并链接到它...

,我从你简短的代码片段中看到的问题是,你不需要在ListView.List元素(AB XAML语法意味着你设置上A. b属性)

<Style ... 
    <Setter Property="PropertyName"> 
    <ValueObj/> 
    </Setter> 
    <Setter Property="View"> 
    <GridView ... /> 
    </Setter> 
</Style> 
0

尚未讨论另一种可能性:你可以在一个DataTemplate定义ListView,并使用该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> 

,并在您的视图模型的OneCollectionAnotherCollection属性都被渲染为具有相同的布局ListView控制。

相关问题