1

次のクラスがあります。

public class Order
{
    public string OrderName { get; set; }
    public List<Parts> PartsList { get; set; }
}

public class Parts
{
    public string PartName { get; set; }
    public double PartQuantity { get; set; }
}

私のコードでは、 Order オブジェクトのリストを作成します

List<Order> myOrders;

最初の要素が TextBox で OrderName を表示し、2 つ目が Datagrid でパーツのリストを表示する要素のスタック パネルを使用するなど、何らかの方法でこれらすべてをユーザーに表示したいと思いますか?

正直なところ、私はさまざまなことを試しています (使用するコントロールの種類に関する要件はありません) が、PartsList を正しく表示することはできません (何も表示されないか、ユーザーに「コレクション」が表示されます。

目標は、次のようなものを見ることです。

Order1    Part1    7
          Part2    12
Order2    Part1    100
          Part2    1
          Part3    58

これは私が今日持っている XAML で、うまくいくと本当に思っていました。

<ItemsControl x:Name="visual"
              ItemsSource="{Binding myOrders}"
              HorizontalAlignment="Stretch"
              HorizontalContentAlignment="Stretch" 
              Margin="0,397,37,31" Grid.Row="1" Height="172">
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <ItemsControl ItemsSource="{Binding }"
                    HorizontalAlignment="Stretch"
                    HorizontalContentAlignment="Stretch">
        <ItemsControl.ItemTemplate>
          <DataTemplate>
            <StackPanel>
              <TextBlock Text="{Binding OrderName}"
                         Margin="10" />
              <ItemsControl ItemsSource="{Binding PartsList}"
                            HorizontalAlignment="Stretch"
                            HorizontalContentAlignment="Stretch">
                <ItemsControl.ItemTemplate>
                  <DataTemplate>
                    <Grid HorizontalAlignment="Stretch">
                      <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="*" />
                      </Grid.ColumnDefinitions>
                      <TextBlock Grid.Column="0"
                                 Text="{Binding PartName}"
                                 TextAlignment="Center" />
                      <TextBlock Grid.Column="1"
                                 Text="{Binding PartQuantity}"
                                 TextAlignment="Center" />
                    </Grid>
                  </DataTemplate>
                </ItemsControl.ItemTemplate>
              </ItemsControl>
            </StackPanel>
          </DataTemplate>
        </ItemsControl.ItemTemplate>
      </ItemsControl>
    </DataTemplate>
  </ItemsControl.ItemTemplate>
</ItemsControl>

このコードの何が問題なのか、誰かわかりますか?

4

1 に答える 1

2

余分な不要な がありItemsControlます。のあるものItemsSource="{Binding}"

myOrdersしたがって、それが s のコレクションを保持するプロパティであると仮定すると、Orderこれは機能するはずです。

<ItemsControl x:Name="visual"
              ItemsSource="{Binding myOrders}"
              HorizontalAlignment="Stretch"
              HorizontalContentAlignment="Stretch" Margin="0,397,37,31" 
              Grid.Row="1" Height="172">
  <ItemsControl.ItemTemplate>  
    <!-- This defines the DataTemplate to display one Order object-->   
    <DataTemplate>     
            <StackPanel>
              <TextBlock Text="{Binding OrderName}"
                         Margin="10" />
              <ItemsControl ItemsSource="{Binding PartsList}"
                            HorizontalAlignment="Stretch"
                            HorizontalContentAlignment="Stretch">
                <ItemsControl.ItemTemplate>
             <!-- This defines the DataTemplate to display one Parts object--> 
                  <DataTemplate>
                    <Grid HorizontalAlignment="Stretch">
                      <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="*" />
                      </Grid.ColumnDefinitions>
                      <TextBlock Grid.Column="0"
                                 Text="{Binding PartName}"
                                 TextAlignment="Center" />
                      <TextBlock Grid.Column="1"
                                 Text="{Binding PartQuantity}"
                                 TextAlignment="Center" />
                    </Grid>
                  </DataTemplate>
                </ItemsControl.ItemTemplate>
              </ItemsControl>
            </StackPanel>        
    </DataTemplate>
  </ItemsControl.ItemTemplate>
</ItemsControl>
于 2013-01-20T16:40:57.633 に答える