我在我最近的项目中定义了一个列表视图,并意识到我将使用更多的列表视图,看起来完全相同并且具有相同的列。由于我是WPF的新手,所以我很好奇最好的方法。是创建用户控件吗?使用样式?我试过使用样式,但它没有按照我希望的方式工作。我尝试使用样式设置“View”属性,如下所示。
<Style x:Key="ListViewStyle" TargetType="{x:Type ListView}">
<Setter Property="View">
<ListView.View>
<GridView>
但它没有用,所以我要求你的意见?!感谢。
答案 0 :(得分:1)
您遗漏了Setter.Value
代码,而且您不需要ListView.View
代码:
<Style x:Key="ListViewStyle" TargetType="{x:Type ListView}">
<Setter Property="View">
<Setter.Value>
<GridView>
答案 1 :(得分:0)
是的,您应该继续将公共属性放入样式并从所有类似的控件链接到它...
我从您的简短代码片段中看到的问题是您不需要ListView.List元素(A.B XAML语法意味着您在A上设置B属性。)
<Style ...
<Setter Property="PropertyName">
<ValueObj/>
</Setter>
<Setter Property="View">
<GridView ... />
</Setter>
</Style>
答案 2 :(得分:0)
尚未讨论的另一种可能性:您可以在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
控件。