我正在開發一個Windows 8應用程序。我想在另一個GridView
項目模板中顯示GridView
。並且我添加了對內部GridView
的可見性綁定,但在將外部GridView
包裝爲GridViewItems
時綁定不起作用。它適用於當我使用簡單的ListView
或GridView
沒有任何包裝。如何在網格視圖內顯示網格視圖?
這是主要的GridView
與包裝
<GridView
Name="feedGridView"
Background="Transparent"
SelectionMode="None"
ItemTemplate="{StaticResource MyFeedGridView}">
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<VariableSizedWrapGrid Height="600" Orientation="Vertical" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
的風格包含另一個GridView
<DataTemplate x:Key="MyFeedGridView">
<Grid HorizontalAlignment="Left" Width="500">
<StackPanel x:Name="gridViewStackPanel" Orientation="Horizontal" >
<GridView
HorizontalAlignment="Right"
x:Name="myFeedGridViewInListView"
ItemTemplate="{StaticResource MyFeedGridViewInListView}"
ItemsSource="{Binding listContent}"
Height="100"
Visibility="{Binding listContent,Converter={StaticResource FeedListToVisibilityConverter}}"
SelectionMode="None"
Width="400" />
</StackPanel>
</Grid>
</DataTemplate>
我使用一個轉換器可以隱藏或顯示內GridView
「MyFeedGridView」。以下是我使用
public object Convert(object value, Type targetType, object parameter, string language)
{
List<ContentList> contents = value as List<ContentList>;
return (contents != null && contents.Count > 0) ? Visibility.Visible : Visibility.Collapsed;
}
我的問題的轉換器是內部的GridView獲取隱藏所有項目或獲取的所有項目,不論我已綁定了listContent的可見。
我注意到,只有當我設置ItemsPanel
時纔會發生這種情況。如果我刪除VariableSizedWrapGrid
屬性,那麼它按預期工作。但是我需要在每一列之後包裝這些項目,所以我不能廢除它。
請讓我知道,如果你有任何線索爲什麼發生這種情況。
由於
編輯: 附加的網格視圖項目應如何排列圖像。如果您看到網格視圖的第一個項目,那麼它在表示歌曲的網格視圖項目內有另一個網格視圖。所以這個內部網格視圖對於一些項目將是空的,併爲一些項目填充。所以我寫了一個可視化轉換器來顯示和隱藏內部網格視圖。當使用轉換器時,如果第一個網格視圖項目具有內部網格視圖項目(歌曲,那麼它將顯示所有項目的內部網格視圖,並且如果第一個網格視圖項目沒有任何內部網格視圖項目(歌曲),那麼它隱藏所有的主要網格視圖項目內部網格視圖。
讓我知道,如果它不明確。
您能詳細闡述一下您試圖實現什麼以及您的視圖模型是如何構建的?也許你可以畫出你的'GridViewItems'的方框和你想要它們包裝的方向和順序? –
@FilipSkakun我已添加圖片。如果不清楚,請告訴我。 – user3458865