首先,我正在使用MVVM / WPF / 。Net Framework 4.6.1
我有一个水平配置为ListView
的ItemsPanelTemplate
,它显示DataTemplate
中的项目。此设置使我可以在ListView
的Width中容纳尽可能多的项目(witdth >>大小与Window相同),并且在调整窗口大小时会做出响应。
到目前为止,一切都很好,现在我只想确定第一行上放置了哪些项目,包括调整窗口的大小以及第一行内的项目增加或减少的时间。
我只想完成此行为,因为我想为这些项目应用不同的模板样式(比方说,我的图像较大或文本颜色不同。)>
以下是ListView
的XAML定义:
作为固定值计算了180,但是很遗憾,它没有按我预期的那样工作,因为我必须使用<ListView x:Name="lv" ItemsSource="{Binding Path = ItemsSource}" SelectedItem="{Binding Path = SelectedItem}"> <ListView.ItemsPanel> <ItemsPanelTemplate> <WrapPanel Orientation="Horizontal"></WrapPanel> </ItemsPanelTemplate> </ListView.ItemsPanel> <ListView.ItemTemplate> <DataTemplate> <Grid Width="180" Height="35"> <Grid.RowDefinitions> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="auto"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Ellipse Grid.Column="0" Grid.Row="0" Height="32" Width="32" VerticalAlignment="Top" HorizontalAlignment="Left"> <Ellipse.Fill> <ImageBrush ImageSource="{Binding IconPathName}" /> </Ellipse.Fill> </Ellipse> <TextBlock Grid.Column="1" Grid.Row="0" TextWrapping="WrapWithOverflow" HorizontalAlignment="Left" VerticalAlignment="Top" Text="{Binding Name}" /> </Grid> </DataTemplate> </ListView.ItemTemplate> </ListView>
BTW:我已经在解决从每个
的问题,并根据ListViewItem
获取IndexGrid
内部DataTemplate
的Width
DependencyProperty
将ListView
的ActualWidth绑定到我的ViewModel,并且在调整窗口大小时响应不佳。 我知道我正在寻找一种非常特殊的行为,但是如果有人对如何处理此行为有任何建议,我将非常感谢。即使您认为我应该使用其他控件,也欢迎您提出任何想法,请详细说明。
提前感谢!
首先,我正在使用MVVM / WPF / .Net Framework 4.6.1,我有一个ListView,它的水平配置了ItemsPanelTemplate,可显示DataTemplate中的项目。此设置...
您不应该在任何视图模型中处理布局。如果您没有扩展ListView
,请考虑使用附加行为(原始示例):
ListBox.cs