首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataGrid模板编辑

DataGrid模板编辑
EN

Stack Overflow用户
提问于 2012-12-04 20:42:04
回答 2查看 438关注 0票数 0

我已经用combobox创建了datagrid (从数据库读取数据),但需要修复一些问题,也许你们中的某人可以帮助我;)

首先,我在dataGrid (group by name Wzór#)中使用了分组,每次我想添加新元素时,它都会在底部显示:http://i45.tinypic.com/2l8yarp.png^是否可以使用这个(新的)项创建类似于"new group“的东西?例如: Wzór 1 Wzór1 niebieski 22 1 1 1 Wzór1 czerwony 23 1 1 1 Wzór 2 Wzór 2察尔尼55 1 1 1 Add new item ComboBox ComBox ComboBox TextBox (它们与图片中标记的完全相同)。我是说,有些人是这样想的:http://i45.tinypic.com/2s0ms90.png^

我发现的第二个问题是,当我添加新项目,并在ComboBox1,2或3中更改任何内容时,当我开始编辑任何文本框时,combobox中的所有值都消失了-有什么方法可以修复它吗?

这里是源代码(实际上它不是很复杂,我有3个方法,填充combobox1,combobox2和combobox3从数据库,然后点击按钮后创建新的产品项目,我添加到列表中):

代码语言:javascript
复制
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方法中为数据网格做一些事情,但是当我把messagebox放在那里时,当我在combobox中改变任何东西时,它不会出现,但当我改变textbox时,它就会出现。

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

发布于 2012-12-04 20:54:49

首先,你需要ObservableCollection,而不是List。其次,您可以使用xaml完成此操作:

代码语言:javascript
复制
<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>
票数 0
EN

Stack Overflow用户

发布于 2012-12-04 21:10:07

评论太长了,所以我把它贴在这里。这是我在xaml中使用的代码,所以我猜你的回答不起作用。

代码语言:javascript
复制
    <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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13703171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档