2017-03-31 100 views
0

我正在通過有關綁定的問題,但到目前爲止沒有找到解決我的問題(這可能是愚蠢的,但我真的是新的UWP的東西)。 我嘗試添加「項目」我的應用程序進行,GridView控件對象的內部,所以我做它的模板:GridView模板綁定(C#UWP)

<GridView x:Name="GV_Seznam_Projektov" Grid.Column="2" Margin="0,10,0,0" Grid.Row="2"> 
     <GridView.ItemTemplate> 
      <DataTemplate x:DataType="x:String"> 
       <Grid Background="#19162D50" HorizontalAlignment="Left" Width="200" Height="300" VerticalAlignment="Top"> 
        <Rectangle Fill="{StaticResource cl_main_back}" HorizontalAlignment="Left" Height="40" VerticalAlignment="Top" Width="200"/> 
        <TextBlock HorizontalAlignment="Left" Height="60" Margin="0,40,0,0" TextWrapping="Wrap" Text="{x:Bind}" VerticalAlignment="Top" Width="200" TextAlignment="Center" Padding="0,15,0,0" FontSize="20" FontWeight="Light"/> 
        <TextBlock HorizontalAlignment="Left" Height="20" Margin="0,80,0,0" TextWrapping="Wrap" Text="by Laurent Resman" VerticalAlignment="Top" Width="200" TextAlignment="Center" Padding="0" FontSize="12" FontWeight="Light"/> 
       </Grid> 
      </DataTemplate> 
     </GridView.ItemTemplate> 
    </GridView> 

,並添加對象是這樣的:

GV_Seznam_Projektov.Items.Add("fublisher.io"); 

我發現所有的文檔關於它在MSDN網絡上,但然後我凸輪問題,我希望每個對象將有不同的「頂部酒吧」和背景顏色,所以沒有人知道如何綁定,在我的例子模板內的三個不同的變量?我猜我應該做一個對象,對吧?但我不知道如何正確地綁定它。

感謝您閱讀這一切:)

回答

1

一個ItemsControl對象可以起到兩個作用。它可以用來呈現一組固定的項目,或者它可以用來顯示從數據綁定到數據源的列表。使用ItemsControl來處理數據更爲常見。要顯示數據,請將對數據的綁定指定爲ItemsSource值(或使用數據上下文),並且不要填充項目。如果要顯示固定列表,請使用一個或多個FrameworkElement子對象填充Items,並且不要指定ItemsSource。

ItemsSource通常引用項目列表。這可以是來自業務對象的固定列表,也可以是用於在基礎數據更改時觸發通知的列表。該列表可能是通用接口(例如IList),也可能是實現Windows運行時數據綁定支持的收集接口的實用類。當您在ItemsControl中顯示項目時,可以使用ItemTemplate屬性,ItemsPanel屬性或兩者來指定項目的外觀。

欲瞭解更多信息,請參閱有關更多信息,請參閱ItemsControl的備註。

在您的代碼中,您將「fublisher.io」設置爲GridViewItems。您應該可以將其添加到列表中,並將列表設置爲GridViewItemsSource

例如:

<GridView x:Name="GV_Seznam_Projektov" Grid.Column="2" Margin="0,10,0,0" Grid.Row="2" ItemsSource="{x:Bind Items}"> 
    <GridView.ItemTemplate> 
     <DataTemplate x:DataType="x:String"> 
      <Grid Background="#19162D50" HorizontalAlignment="Left" Width="200" Height="300" VerticalAlignment="Top"> 
       <Rectangle Fill="{StaticResource cl_main_back}" HorizontalAlignment="Left" Height="40" VerticalAlignment="Top" Width="200" /> 
       <TextBlock HorizontalAlignment="Left" Height="60" Margin="0,40,0,0" TextWrapping="Wrap" Text="{x:Bind}" VerticalAlignment="Top" Width="200" TextAlignment="Center" Padding="0,15,0,0" FontSize="20" FontWeight="Light" /> 
       <TextBlock HorizontalAlignment="Left" Height="20" Margin="0,80,0,0" TextWrapping="Wrap" Text="by Laurent Resman" VerticalAlignment="Top" Width="200" TextAlignment="Center" Padding="0" FontSize="12" FontWeight="Light" /> 
      </Grid> 
     </DataTemplate> 
    </GridView.ItemTemplate> 
</GridView> 

代碼後面:

private ObservableCollection<string> Items; 

public MainPage() 
{ 
    this.InitializeComponent(); 
    Items = new ObservableCollection<string>(); 
    Items.Add("fublisher.io"); 
}