Autor Beitrag
bo_91
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 43

Win XP - Win8
C#, PHP, VB, Java
BeitragVerfasst: Do 06.11.14 14:39 
Hallo zusammen

Ich möchte in einem DataGrid 2 Columns haben, die 1. ist normaler Text die 2. soll ein DropDown werden.

Nun meine Idee war das Grid via Binding an einen DataTable zu hängen, mit den DropDowns in der 2. Spalte wusste ich aber nicht wirklich wie ich das tun sollte. Da anhand der Value in der 2. DataTable Column das richtige Item des DropDowns selektiert werden soll & beim Ändern des selektierten Items soll natürlich in dem DataTable auch der Wert ändern.

Weiter habe ich bemerkt, dass ich wenn ich die Zelle zu editieren beginne, zwar ein Item wählen kann in dem DropDown aber sobald ich wo anders Klicke und das DropDown den Fokus verliert, werden wieder nur das leere Feld angezeigt. Eigentlich sollte das DropDown immer sichtbar sein egal ob editing mode oder fokus vorhanden ist oder nicht.

Mein Versuch sieht bisher so aus...

ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
<DataGrid x:Name="table" IsReadOnly="False" ItemsSource="{Binding DataTable}" RowHeaderWidth="0" CanUserAddRows="False" AutoGenerateColumns="True">
    <DataGridTemplateColumn Header="{x:Static resx:Resources.ColumnName}" Width="*">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding Path=DataTable.Rows[0]}"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
                <DataGridTemplateColumn>
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <ComboBox SelectedValue="{Binding Path=ColumnView.Rows[1]}">
                                <ComboBox.ItemsSource>
                                    <CompositeCollection>
                                        <TextBlock Text="{x:Static resx:Resources.ColumnTypeA}" />
                                        <TextBlock Text="{x:Static resx:Resources.ColumnTypeB}" />
                                        <TextBlock Text="{x:Static resx:Resources.ColumnTypeC}" />
                                    </CompositeCollection>
                                </ComboBox.ItemsSource>
                            </ComboBox>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
</DataGrid>


Ist das mit dem Binding an einen DataTable überhaupt machbar? Wenn ja, wie muss ich da weiter vorgehen? Falls nein, wie müsste ich es dann machen?

Vielen Dank schon mal :)
bo91