2017-03-31 16 views
0

バインディングに関する質問をしていましたが、これまでのところ私の問題(これは愚かなものかもしれませんが、私はUWPのことを本当に新しくしています)への解決策は見つかりませんでした。 私はGridViewのオブジェクトの内部で、私のアプリケーションが行う「プロジェクト」を追加しようとしているので、私はそれのためのテンプレートを作った:GridView Template Binding(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ネットワークでは、私は問題を横切ってカム、私はすべてのオブジェクトは、 "トップバー"と背景色を持っていることを望む誰もがバインドする方法を知っている、私の例ではテンプレート内の3つの異なる変数?私はオブジェクトを作るべきだと思いますよね?しかし、私はそれを正しくバインドする方法を知らない。このすべてを読み取るための

感謝:)

答えて

1

アンのItemsControlオブジェクトは二つの役割を果たすことができます。固定された項目セットを表示するために使用することも、データソースにバインドしたデータから取得したリストを表示することもできます。 ItemsControlをデータに使用する方が一般的です。データを表示するには、データへのバインディングをItemsSource値として指定するか(またはデータコンテキストを使用する)、Itemsに値を設定しないでください。固定リストを表示する場合は、Itemに1つ以上のFrameworkElement子オブジェクトを設定し、ItemsSourceを指定しないでください。

ItemsSourceは、通常、アイテムのリストを参照します。これは、ビジネスオブジェクトからの固定リスト、または基になるデータが変更された場合に通知を発行するように設計されたリストです。リストは、汎用インターフェイス(IListなど)またはWindowsランタイムデータバインディングがサポートするコレクションインターフェイスを実装する実用的なクラスです。 ItemsControlにアイテムを表示するときは、ItemTemplateプロパティ、ItemsPanelプロパティ、またはその両方を使用してアイテムの外観を指定できます。

詳細については、ItemsControlの注釈を参照してください。

コードでは、GridViewItemsに "fublisher.io"を設定します。これをリストに追加してリストをItemsSourceGridViewに設定することができます。

<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"); 
} 
例えば