Проблема привязки данных из базы данных к WPF DatagridTemplateColumn (шаблонный столбец имеет комбинированный список) - PullRequest
0 голосов
/ 26 января 2020

Я пытаюсь привязать данные из базы данных к сетке данных в WPF с помощью Caliburn.Micro. Caliburn прекрасно работает со стандартными текстовыми столбцами, но когда я пытаюсь привязать данные к столбцу шаблона, данные не отображаются на экране. Например, в столбце «Элемент материала» элементы отображаются в виде простой привязки. Но когда я пытаюсь использовать столбец шаблона с выпадающим списком, то же самое не происходит. Цель здесь - вытащить данные из базы данных в представление, используя Bindablecollection ... Затем у вас есть выпадающее меню для выбора из Статус материала, Заказано, Нет на складе, На складе. Это действительно простая идея, чтобы изменить выбранный в прошлом статус (например, не в наличии) (например, в наличии) и использовать его во многих приложениях. Вот код и изображение того, что происходит.

            <DataGrid AutoGenerateColumns="False"
                      ScrollViewer.CanContentScroll="True"
                      ScrollViewer.VerticalScrollBarVisibility="Auto"
                      ScrollViewer.HorizontalScrollBarVisibility="Auto"
                      CanUserAddRows="False"
                      x:Name="ProjectMaterialList"
                      SelectedItem="{Binding SelectedMaterialItem}"
                      Margin="10,10,10.333,10">
                <DataGrid.Columns>
                    <DataGridTextColumn Header="MaterialId"
                                        Binding="{Binding MaterialId}"
                                        CanUserResize="False"
                                        Visibility="Hidden" />
                    <DataGridTextColumn Header="Project"
                                        Binding="{Binding ProjectName}"
                                        CanUserResize="False"
                                        Width="15*" />
                    <DataGridTextColumn Header="Type"
                                        Width="7*"
                                        Binding="{Binding MaterialType}"
                                        CanUserResize="False" />
                    <DataGridTextColumn Header="Quantity"
                                        CanUserResize="False"
                                        Binding="{Binding MaterialQuantity}"
                                        Width="5*" />
                    <DataGridTextColumn Header="Unit"
                                        Binding="{Binding MaterialMeasureType}"
                                        CanUserResize="False"
                                        Width="5*" />
                    <DataGridTextColumn Header="Measure"
                                        Binding="{Binding MaterialMeasure}"
                                        CanUserResize="False"
                                        Width="5*" />
                    <DataGridTextColumn Header="Item"
                                        Binding="{Binding MaterialItem}"
                                        CanUserResize="False"
                                        Width="15*" />
                    <DataGridTemplateColumn Header="Status"
                                            CanUserResize="False"
                                            Width="11*"
                                            x:Name="MaterialStatus">
                        <DataGridTemplateColumn.CellEditingTemplate>
                            <DataTemplate>
                                <TextBox Text="{Binding MaterialModel.MaterialStatus }" />

                            </DataTemplate>
                        </DataGridTemplateColumn.CellEditingTemplate>
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <ComboBox ItemsSource="{Binding Path=OrderStatuses }"
                                          SelectedItem="MaterialStatus" />
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>

                    </DataGridTemplateColumn>



                </DataGrid.Columns>

            </DataGrid>

Что происходит Что я хочу случиться

1 Ответ

0 голосов
/ 27 января 2020

вы не указали источник элемента для вашей таблицы данных? источник предмета должен быть привязан к вашей наблюдаемой коллекции, например:

ItemsSource="{Binding ListOfMaterial}"
...