0

コンボボックス (DB からデータを読み取る) を使用してデータグリッドを作成しましたが、いくつかの問題を修正する必要があります。

まず、dataGrid でグループ化 (Wzór# という名前でグループ化) を使用しました。新しい要素を追加するたびに、下に表示されます: http://i45.tinypic.com/2l8yarp.png [^]この(新しい)アイテムだけで「新しいグループ」のようなものを作成することは可能ですか?例: Wzór 1 Wzór1 niebieski 22 1 1 1 Wzór1 czerwony 23 1 1 1 Wzór 2 Wzór 2 czarny 55 1 1 1 新しい項目を追加 ComboBox ComBox ComboBox TextBox TextBox TextBox (写真でマークされているものとまったく同じです)。私はそのようなことを意味します: http://i45.tinypic.com/2s0ms90.png [^]

私が見つけた2番目の問題は、新しいアイテムを追加し、ComboBox1、2、または3で何かを変更してから、テキストボックスの編集を開始すると、コンボボックスのすべての値が消えることです-それを修正する方法はありますか?

これがソースコードです(実際にはそれほど複雑ではありません。データベースからコンボボックス1、コンボボックス2、コンボボックス3を埋める3つのメソッドがあり、ボタンをクリックした後、リストに追加する新しい製品アイテムを作成しています):

wzoryCount = wzoryCB.Items.Count;
            List<Produkt> Produkty = new List<Produkt>();
           // for (int i = 0; i < wzoryCount; i++)
            //{

                Produkt p = new Produkt { wzor = "", kolor = "", cena = 0, rozmiar = "", indeks = "", kod = "" };
                Produkty.Add(p);
           // }

            dataGrid1.ItemsSource = Produkty;
            ListCollectionView collection = new ListCollectionView(Produkty);
            collection.GroupDescriptions.Add(new PropertyGroupDescription("wzor"));
            dataGrid1.ItemsSource = collection;

データグリッドのbeginEditメソッドで何かをする必要があると思いますが、そこにメッセージボックスを配置すると、コンボボックスで何かを変更しても表示されませんが、テキストボックスを変更すると表示されます。

助けてくれてありがとう!

4

2 に答える 2

0

まず、List ではなく、ObservableCollection が必要です。次に、xaml で実行できます。

<DataGrid ItemsSource="{Binding Produkty}">
    <DataGrid.Columns>

        <DataGridTemplateColumn Header="wzor">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding wzor}"/>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>

        <DataGridTemplateColumn Header="kolor">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding kolor}"/>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>

        <DataGridTemplateColumn Header="cena">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding cena}"/>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>

        <DataGridTemplateColumn Header="rozmiar">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding rozmiar}"/>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>

        <DataGridTemplateColumn Header="indeks">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding indeks}"/>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>

        <DataGridTemplateColumn Header="kod">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding kod}"/>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>

    </DataGrid.Columns>
</DataGrid>
于 2012-12-04T12:54:49.293 に答える
0

コメントするには長すぎるので、ここに投稿してください。これはxamlで使用しているコードなので、あなたの答えはうまくいきません

    <DataGrid.Columns>

        <!--<DataGridTextColumn Header="Wzór" Binding="{Binding Path=wzor}"  ></DataGridTextColumn>-->

        <DataGridTemplateColumn Header="Wzór">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <ComboBox ItemsSource="{StaticResource wzoryList}" SelectedItem="{Binding wzor}"></ComboBox>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>



        <DataGridTemplateColumn Header="Kolor">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <ComboBox ItemsSource="{StaticResource koloryList}" SelectedItem="{Binding kolor}"></ComboBox>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>

        <DataGridTemplateColumn Header="Rozmiar">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <ComboBox ItemsSource="{StaticResource rozmiarList}" SelectedItem="{Binding rozmiar}"></ComboBox>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>


        <DataGridTextColumn Header="Indeks" Binding="{Binding Path=indeks}" ></DataGridTextColumn>
        <DataGridTextColumn Header="Kod" Binding="{Binding Path=kod}"></DataGridTextColumn>
        <DataGridTextColumn Header="Cena" Binding="{Binding Path=cena}" ></DataGridTextColumn>
于 2012-12-04T13:10:07.163 に答える