自定义ListViewItem

发布于 2024-07-15 20:21:08 字数 1542 浏览 4 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

若言繁花未落 2024-07-22 20:21:08

基于普通Listviewitem创建自己的listviewitem并进行自己的绘图

Create your own listviewitem based on the normal Listviewitem and and do your own drawing

南城旧梦 2024-07-22 20:21:08

在 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。

  1. 您处于当前 ListViewItem 绑定的上下文中,因此您可以描述下一个块以满足您的需求。

    您处于当前

  2. 您可以使用“中间人”ViewModel,其中包含对另一个 ViewModel 的引用,该 ViewModel 描述了“多行子项 3”中的内容。 这将允许您在两种类型上使用 DataTemplate 并单独显示每种类型。 这个解决方案一开始很复杂,但看起来更符合您的问题。

In WPF you can use the ListViewItem to describe how a ListViewItem should look, or even use a DataTemplate. Here is a really simple start to your above problem, then see if you can play with it to your needs.

<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>

Read Comment: Instead of thinking of this specific part as your ListBoxItem, there can be two approaches.

  1. You are in the context of your current ListViewItem's binding, so you can describe that next block to suit your needs.

  2. You can use an "middle-man" ViewModel that contains a reference to another ViewModel that describes your content in "Multiline subitem 3". This would allow you to use a DataTemplate on both types and separate the display of each. This solution is complex, at first, but looks to be more in line with your question.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文