簡體   English   中英

WPF ListView不呈現模板

[英]WPF ListView not rendering templates

我有一個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>

編輯:當我調試時,列表視圖在綁定中具有適當的項目(例如,CurrentItem顯示了應該用於綁定的適當的對象),但是由於某些原因,它們沒有顯示出來。

我真笨。 看來主數據模板上的Width =“ Auto”並沒有完全散開。 設置Width = 100表示​​零件。 也許是父母沒有一路傳播。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM