如何从数据网格中选定行的单元格中获取值?
问题描述:
我看到这个问题已被问到,但大多数答案似乎围绕在我使用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模型的名称值。
如何获得每个单元格的值?
答
您需要将SelectedItem
更新为与ObservableColleciton
中的项目相同的类型。
public MD_LoggedUsersModel SelectedLicense
{
get
{
return _selectedLicense;
}
set
{
if (_selectedLicense != value)
{
_selectedLicense = value;
}
}
}
这样做。非常感激!! –