我必须自定义 .NETListView
控件。
ListViewItem
必须具有以下结构:
替代文字 http://img257.imageshack.us/img257/1575/85834837.jpg
有没有什么好的教程可以帮助我进行这种定制?
我正在使用 Visual Studio 2008,C#。
我必须自定义 .NETListView
控件。
ListViewItem
必须具有以下结构:
替代文字 http://img257.imageshack.us/img257/1575/85834837.jpg
有没有什么好的教程可以帮助我进行这种定制?
我正在使用 Visual Studio 2008,C#。
Scott Guthrie 有一些很棒的教程,涵盖了列表视图控件
在普通 Listviewitem 的基础上创建自己的 listviewitem 并进行自己的绘图
在 WPF 中,您可以使用 ListViewItem 来描述 ListViewItem 的外观,甚至可以使用 DataTemplate。这是您上述问题的一个非常简单的开始,然后看看您是否可以根据需要使用它。
<ListView ItemsSource="{Binding ViewModelList}" >
<ListViewItem>
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Image Source="{Binding ImageInViewModel}"
Grid.Column="0" Grid.Row="0" Grid.RowSpan="2"/>
<TextBlock Text="{Binding ItemText}" Name="Item Text"
Grid.Row="0" Grid.Column="1" />
<TextBlock Name="SubItem1" Text="{Binding SubItem1}"
Grid.Row="0" Grid.Column="2" />
<TextBlock Name="SubItem2" Text="{Binding SubItem2}"
Grid.Row="0" Grid.Column="3" />
<Read Comment! Grid.Row="1" Grid.Column="1" Grid.ColSpan="3" />
</Grid>
</ListViewItem>
</ListView>
阅读评论:可以有两种方法,而不是将这个特定部分视为您的 ListBoxItem。
您处于当前 ListViewItem 绑定的上下文中,因此您可以描述下一个块以满足您的需要。
您可以使用“中间人” ViewModel,其中包含对另一个 ViewModel 的引用,该 ViewModel 在“Multiline subitem 3”中描述您的内容。这将允许您在这两种类型上使用 DataTemplate 并将每种类型的显示分开。起初,此解决方案很复杂,但看起来更符合您的问题。