0

データグリッドから itemsource を選択すると、値が null になります。データグリッドで imtemsource を定義していないからでしょうか?

これは、データグリッドに行を追加する方法です。

this.dgProductList.Items.Add(new {ProductId=product.ProductId, Name=product.Name, Qty=1, Price=product.Price});

これが私のwpfです:

<DataGrid Name="dgProductList" 
                                  AutoGenerateColumns="False" 
                                  FontSize="15"
                                  HorizontalGridLinesBrush="#f0f0f0"
                                  VerticalGridLinesBrush="#f0f0f0"
                                  ScrollViewer.CanContentScroll="False"      
                                  ScrollViewer.VerticalScrollBarVisibility="Auto" 
                                  ScrollViewer.HorizontalScrollBarVisibility="Auto">
                            <DataGrid.Columns>
                                <DataGridTemplateColumn Header="Image">
                                    <DataGridTemplateColumn.CellTemplate>
                                        <DataTemplate>
                                            <Image Height="10" Width="10" Source="{Binding Picture}" Stretch="Uniform"></Image>
                                        </DataTemplate>
                                    </DataGridTemplateColumn.CellTemplate>
                                </DataGridTemplateColumn>
                                <DataGridTextColumn Binding="{Binding ProductId}" Visibility="Hidden"/>
                                <DataGridTextColumn Binding="{Binding Name}" Header="Item" />
                                <DataGridTextColumn Binding="{Binding Qty}" Header="Qty" />
                                <DataGridTextColumn Binding="{Binding Price}" Header="Price" />
                                <DataGridTemplateColumn Width="*">
                                    <DataGridTemplateColumn.CellTemplate>
                                        <DataTemplate>
                                            <StackPanel Orientation="Horizontal">
                                                <Button Width="30" Name="btnDecrease" Content="-" />
                                                <Button Width="30" Name="btnIncrease" Content="+" />
                                            </StackPanel>
                                        </DataTemplate>
                                    </DataGridTemplateColumn.CellTemplate>
                                </DataGridTemplateColumn>
                            </DataGrid.Columns>
                        </DataGrid>
4

2 に答える 2

1

グリッドの ItemsSource プロパティを使用する必要があります

お気に入り

dgProductList.ItemsSource = YourData;

また

dgProductList.SetBinding(ItemsControl.ItemsSourceProperty, new Binding { 

Source = YourData 
});
于 2012-09-27T06:52:30.903 に答える
1

データグリッドにアイテムを追加するには、バインディングを使用する必要があります。

<DataGrid ItemsSource="{Binding DataGridItemsSource}" ...

ビューモデル(またはビューの DataSource に割り当てられているもの)で:

public ObservableCollection<ProductData> DataGridItemsSource { get; set; }

ObservableCollection は、データグリッドがこのコレクションの変更に反応できるようにするパターンを実装するため、wpf バインディングで使用するものです。

于 2012-09-27T06:48:28.503 に答える