因此,我从xaml中找到了这个答案Pass命令参数,我认为这是我了解的大多数方法。我遇到的问题是,当我在数据网格中选择一行时,它会触发命令,但所选项目为null。
我不知道并且怀疑是问题所在,我应该将所选项目传递给哪种类型的视图模型?目前,我正在使用IList,如我的viewmodel代码所示:
namespace Project_Manager.ViewModel
{
public class ProjectSummaryViewModel : ObservableObject
{
public ProjectSummaryViewModel()
{
ProjectSummary = DatabaseFunctions.getProjectSummaryData();
}
private ObservableCollection<ProjectSummaryModel> projectsummary;
public ObservableCollection<ProjectSummaryModel> ProjectSummary
{
get { return projectsummary; }
set
{
projectsummary = value;
OnPropertyChanged("ProjectSummary");
}
}
public ICommand DeleteRowCommand
{
get { return new ParamDelegateCommand<IList<ProjectSummaryModel>>(DeleteRow); }
}
private void DeleteRow(IList<ProjectSummaryModel> projectsummaryselected)
{
string name = projectsummaryselected[0].ProjectName;
}
}
}
Run Code Online (Sandbox Code Playgroud)
数据网格的XAML视图代码如下所示:
<Window x:Class="Project_Manager.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<!--<Window.Resources>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
</Window.Resources>-->
<Grid>
<Grid.RowDefinitions> …Run Code Online (Sandbox Code Playgroud)