C# DataGrid中的属性索引器
我有一个上下文菜单,我想在我的datagrid中使用它。每排我都想看一下菜单 如果isRunTest==false,则仅显示第一个菜单项 如果IsRunTest==true,则仅显示第二个菜单项 是否可以根据测试集的属性,每行显示两个菜单项中的一个?我想知道是否需要将IsRunTest属性设置为索引器,但不确定如何做到这一点并使其适用于每一行C# DataGrid中的属性索引器,c#,wpf,xaml,mvvm,C#,Wpf,Xaml,Mvvm,我有一个上下文菜单,我想在我的datagrid中使用它。每排我都想看一下菜单 如果isRunTest==false,则仅显示第一个菜单项 如果IsRunTest==true,则仅显示第二个菜单项 是否可以根据测试集的属性,每行显示两个菜单项中的一个?我想知道是否需要将IsRunTest属性设置为索引器,但不确定如何做到这一点并使其适用于每一行 <DataGrid ItemsSource="{Binding TestResults}" SelectedItem="{Binding
<DataGrid ItemsSource="{Binding TestResults}"
SelectedItem="{Binding SelectedTestResult}">
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem Header="Run To Selected Test"
Command="{Binding RunToSelectedTestAction}"
Visibility="{Binding IsRunToTestSet,
Converter={StaticResource BoolToVisibilityConverter},
ConverterParameter=Visible}" />
<MenuItem Header="Remove Run To Selected Test"
Command="{Binding RemoveRunToSelectedTestAction}"
Visibility="{Binding IsRunToTestSet,
Converter={StaticResource BoolToVisibilityConverter},
ConverterParameter=Collapsed}" />
</ContextMenu>
</DataGrid.ContextMenu>
...Defined Columns
</DataGrid>
ViewModel Properties
public ObservableCollection<TestResultsModel> TestResults
{
get
{
return this.testResults;
}
set
{
this.testResults = value;
this.NotifyPropertyChanged(m => m.TestResults);
}
}
public TestResultsModel SelectedTestResult
{
get
{
return this.selectedTestResult;
}
set
{
this.selectedTestResult = value;
this.NotifyPropertyChanged(m => m.SelectedTestResult);
}
}
public bool IsRunToPCodeSet
{
get
{
return this.SelectedTestResult.IsRunToPCodeSet;
}
set
{
this.SelectedTestResult.IsRunToPCodeSet = value;
this.NotifyPropertyChanged(m => m.IsRunToPCodeSet);
}
}
这实际上看起来应该运行良好。你在看什么?是否同时显示两个菜单项?或者根本没有?在选择一行之前,我只看到第一个菜单项。如果我然后选择一行,它似乎像预期的那样工作。但在另一行,我看到两个菜单项,我只想看到第一个,因为我没有在那一行选择任何东西。