обновление и вставка Mvvm datagride из внешних полей

#wpf #mvvm #datagrid

#wpf #mvvm #datagrid

Вопрос:

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

  <DataGrid
                    AlternatingRowBackground="CadetBlue "
                    AutoGenerateColumns="False"
                    CanUserAddRows="False"
                    CanUserDeleteRows="False"
                    IsReadOnly="True"
                    ItemsSource="{Binding Path=Addresss ,Mode=TwoWay}"
                    SelectedItem="{Binding Path=Address, Mode=OneWayToSource}"

                    ColumnHeaderStyle="{StaticResource CenterColumnHeader}"
                    CellStyle="{StaticResource DataGridContentCellCentering}">
                    
                    <DataGrid.Columns>

                        <DataGridTextColumn
                            
                            Width="70"
                            Binding="{Binding Path=AddType}"
                            Header="النوع" 
                           
                                    /> 

                        <DataGridTextColumn
                            Width="80"
                            Binding="{Binding Path=AddAdjective}"
                            Header="الوصف" />
                        <DataGridTextColumn
                            Width="250"
                            Binding="{Binding Path=AddAddress}"
                            Header="العنوان" />


                    </DataGrid.Columns>
                </DataGrid>
  

Я создал поле со списком

  <ComboBox x:Name="Cbox1" Width="69"
                        materialDesign:HintAssist.Hint="النوع"
                        Background="#252525"
                        ItemsSource="{Binding Path=AddTypelist}"
                        SelectedValue="{Binding Path=Addressl.AddType}"
                        Style="{StaticResource MaterialDesignFilledComboBoxFocus}" 
                        IsTextSearchEnabled="True" IsTextSearchCaseSensitive="True"/>
  

Я не хочу, чтобы изменение происходило автоматически. Когда я меняю его в поле со списком, я хочу, чтобы процесс выполнялся с помощью кнопки
Я попробовал этот метод

  public AddressTable Address
        {
            get =>  _address;
            set
            {
                _address = value;
                _addressl = _address;
                NotifyOfPropertyChange(()=>Address);
               
            }
        }
        private AddressTable _addressl;

        public AddressTable Addressl
        {
            get =>  _addressl;
            set
            {
                _addressl = value;
                NotifyOfPropertyChange(() => Addressl);
            }
        }
  

Но это не сработало

Комментарии:

1. Поле со списком находится за пределами datagrid? Я не понимаю, что вы собираетесь с этим делать, и вы пропустили, что addtypelist . Пожалуйста, добавьте достаточно кода и разметки, чтобы кто-то мог воспроизвести вашу проблему. Пожалуйста, также уточните, чего вы пытаетесь достичь.

2. На данный момент у вас, похоже, есть свойство Addresss, которое, предположительно, представляет собой набор адресов. Я рекомендую вам изменить это имя, чтобы оно было более понятным. На первый взгляд кажется, что вы привязываете itemssource и selecteditem к одному и тому же свойству.