我有一个ListView
我填充了ObservableCollection
中的项目。一切顺利,直到我决定添加第二个列表视图来过滤一些项目。
我现在设置的是主列表视图将ItemGroup
个对象作为渲染项目,其中显示的项目是项目组中的第一个。使用存储桶设想哈希表,并且列表中呈现的项目是组中最新的项目。
我有一个按钮,当点击时,会显示另一个列表视图,其中包含该“桶”中的所有项目。但是,我在新列表视图中获得的只是项目的空白条目。我看到他们的项目风格背景,但是celltemplate看起来是空的。
我唯一的猜测是存在参考问题,因为有些项目已经在另一个ItemSource
中。
我附上了截图:
这是我的DataTemplate
:
<DataTemplate x:Key="ResultListGroupViewCellTemplate">
<!--<DockPanel>-->
<Grid Width="Auto" Margin="0,5,5,5" ShowGridLines="False">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0">
<Image Margin="2" Source="{Binding Path=StrengthImage}"
Height="20" Width="20" HorizontalAlignment="Left" />
<TextBlock Text="{Binding Path=AddedDate}" Margin="0,3,0,0"
TextTrimming="CharacterEllipsis" VerticalAlignment="Center" FontFamily="Tahoma" FontSize="10" FontStyle="Italic" HorizontalAlignment="Left" />
</StackPanel>
</Grid>
<!--</DockPanel>-->
</DataTemplate>
以下是我设置数据绑定的方法(MatchApiObject是上面DataTemplate
中用于绑定的对象):
groupViewCollection = new ObservableCollection<MatchApiObject>(m.GroupList.OrderBy(mi => mi.AddedDate));
groupViewListView.DataContext = groupViewCollection;
groupViewListView本身:
<ListView Name="groupViewListView" Foreground="#FF333333"
ItemContainerStyle="{StaticResource ListViewMatchItemStyleNotSelected}"
SelectionMode="Single"
ItemsSource="{Binding}"
BorderThickness="0"
SelectionChanged="contactsList_SelectionChanged"
AlternationCount="2"
HorizontalContentAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
>
<ListView.View>
<GridView x:Name="groupViewListViewGridView" AllowsColumnReorder="False">
<GridView.ColumnHeaderContainerStyle>
<Style TargetType="GridViewColumnHeader">
<Setter Property="Visibility" Value="Collapsed" />
</Style>
</GridView.ColumnHeaderContainerStyle>
<GridViewColumn CellTemplate="{StaticResource StrengthValMatchColumnCellTemplate}" Width="0" Header="Strength" />
<GridViewColumn CellTemplate="{StaticResource DateMatchColumnCellTemplate}" Width="0" Header="Date" />
<!--<GridViewColumn CellTemplateSelector="{StaticResource myMatchListItemTemplateSelector}" Width="Auto" Header="Result" />-->
<GridViewColumn CellTemplate="{StaticResource ResultListGroupViewCellTemplate}" Width="Auto" Header="Result" />
</GridView>
</ListView.View>
</ListView>
编辑: 当我调试时,listview在绑定中有适当的项目(例如,CurrentItem显示应该用于绑定的正确对象),但由于某种原因它们没有出现。
答案 0 :(得分:0)
我很蠢。使用我的主数据模板的列上的Width =“Auto”似乎没有一直在扩散。设置宽度= 100显示该部件。也许这是父母没有一直在扩散。