2016-06-19 7 views
1

私は基本的にさまざまなカテゴリのID /値のグリッドであるオブジェクトの配列を持っています。カテゴリ別にコレクションをバインドすると、ListViewのテキストボックスの「グリッド」をバインドできますか? IDの値はわかります。以下に明確にする例。私はUIを扱うことができますが、IDで「配置」する方法はわかりませんが、コードビハインドでUIを作成して作成しない限り、値を表示/バインドしません。Xamlでこのレイアウトを達成できますか?

public class MyItem {   
    string ID; 
    string Value; 
    string Category; 
} 

with values: 
    { id1, value1a, catA} 
    { id2, value1b, catA} 
    { id1, value2a, catB} 
    { id2, value2a, catB} 

(各カテゴリの値を示し、各行とリストビュー)を結合UIを希望:

value1a  value1b 
value2a  value2b 

答えて

0

のために私はあなたがGridViewItemの幅を設定するSizeChangedイベントハンドラを使用しListView

<GridView x:Name="categoryGrid" SizeChanged="GridView_SizeChanged" > 
    <GridView.ItemContainerStyle> 
     <Style TargetType="GridViewItem"> 
      <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
      <Setter Property="VerticalContentAlignment" Value="Stretch"/> 
     </Style> 
    </GridView.ItemContainerStyle> 
     <GridView.ItemTemplate> 
          <DataTemplate> 
           <TextBlock Text="{Binding Value}"/> 
          </DataTemplate> 
     </GridView.ItemTemplate> 
</GridView> 

の代わりにGridViewを使用することをお勧め。

private async void GridView_SizeChanged(object sender, SizeChangedEventArgs e) 
{ 
    try 
    { 
     ItemsWrapGrid itemsWPGrid = (ItemsWrapGrid)((GridView)sender).ItemsPanelRoot; 
     double viewWidth = ApplicationView.GetForCurrentView().VisibleBounds.Width; 
     itemsWPGrid.ItemWidth = (viewWidth)/2; 
    } 
    catch 
    { 

    } 
} 

そしてcategoryGrid.ItemsSource = yourCustomList;

1

あなたはListViewを作成し、モデルにいくつかのプロパティをバインドすることができます。たとえば、あなたの場合は

<ListView> 
     <ListView.ItemTemplate> 
      <DataTemplate> 

       <Grid> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="*"></ColumnDefinition> 
         <ColumnDefinition Width="*"></ColumnDefinition> 
        </Grid.ColumnDefinitions> 

       <TextBlock Grid.Column="0" Text="{Binding ID}" /> 
       <TextBlock Grid.Column="1" Text="{Binding Value}" /> 
       <TextBlock Text="{Binding Category}" /> 
       <Etc /> 

       </Grid> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 
+0

を設定することを忘れないでくださいしかし、私は、行全体で複数の値をしたいので、これは動作しません。.. – DeannaD

+0

あなたは= "水平方向と行の内側のStackPanelを作成することができますいくつかのTextBlockをBindingsの中に配置します。 – GeralexGR

関連する問題