#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 к одному и тому же свойству.