0

以下の xaml データグリッドは、Image 列の前と price 列の後に 2 つの列を追加しています。どうすれば無効にできますか?

<DataGrid Name="dgProductList" AutoGenerateColumns="False" FontSize="18" 
                                  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 Name}" Header="Item" />
                                <DataGridTextColumn Header="Qty" />
                                <DataGridTextColumn Binding="{Binding Price}" Header="Price" />
                            </DataGrid.Columns>
                        </DataGrid>

ありがとうございました。

4

2 に答える 2

3

DataGrid に itemssource バインディングを追加します。

<DataGrid Name="dgProductList" AutoGenerateColumns="False" FontSize="18"
                              ScrollViewer.CanContentScroll="False"
                              ScrollViewer.VerticalScrollBarVisibility="Auto"
                              ScrollViewer.HorizontalScrollBarVisibility="Auto"
          ItemsSource="{Binding Products}" MouseDoubleClick="dgProductList_MouseDoubleClick">

コードビハインド:

public class Product : NotificationObject
{
    public string Name { get; set; }
}

public IList<Product> Products { get; set; }

public MainWindow()
{
    Products = new ObservableCollection<Product>
    {
        new Product {Name = "test1"},
        new Product {Name = "test2"},
    };

    DataContext = this;

    InitializeComponent();
}

private void dgProductList_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    Products.Add(new Product { Name = "test x" });
}
于 2012-09-26T09:05:46.200 に答える
1

xamlをコピーして貼り付けるだけで、余分な列はありません。たぶん、列を作成するコードビハインドファイルにいくつかのコードがありますか?

于 2012-09-26T08:42:26.630 に答える