2017-03-31 63 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"); 
}