我看到这个问题已被问到哪里但是当我使用MVVM模式时,大多数答案似乎都以代码为中心。对于那些与我的情况有关的答案,我尝试了许多不同的建议,但我似乎错过了大局。
基本上我要做的是添加一个删除按钮,该按钮将从SQL数据库中删除数据网格中的所有选定行,或者为每一行添加删除按钮。我更喜欢有一个删除按钮,但我在每一行都打开一个删除按钮,我实际上已经完成了但仍然面临同样的问题,因为我需要从数据库中删除特定的记录ID以及删除它来自收藏。
XAML
<DataGrid x:Name="licenseGrid"
ItemsSource="{Binding LoggedUsers}"
SelectedItem="{Binding SelectedLicense, Mode=TwoWay}"
Style="{DynamicResource DataGridStyle}"
Grid.Row="2"
Grid.Column="1"
Grid.ColumnSpan="6"
Height="535"
VerticalAlignment="Top"
IsReadOnly="True"
AutoGenerateColumns="False"
HeadersVisibility="Column"
SelectionMode="Extended"
CanUserDeleteRows="True">
视图模型
public ObservableCollection<MD_LoggedUsersModel> LoggedUsers
{
get { return _loggedUsers; }
set { _loggedUsers = value; NotifyPropertyChanged(nameof(LoggedUsers)); }
public string SelectedLicense
{
get
{
return _selectedLicense;
}
set
{
if (_selectedLicense != value)
{
_selectedLicense = value;
OnPropertyChanged(nameof(SelectedLicense));
RevokeSelected(_selectedLicense);
}
if (_selectedLicense == null)
{
LoadData();
}
}
}
返回的值是LoggedUsers模型的名称。
如何获取每个单元格的值?
答案 0 :(得分:0)
您需要将SelectedItem
更新为与ObservableColleciton
中的项目相同的类型。
public MD_LoggedUsersModel SelectedLicense
{
get
{
return _selectedLicense;
}
set
{
if (_selectedLicense != value)
{
_selectedLicense = value;
}
}
}