问题描述
我有以下委托命令:
使用Prism.Mvvm; 使用System.Collections.ObjectModel;
命名空间Photography.viewmodels { 公共类ApertureDataGridviewmodel:Baseviewmodel {
private readonly ConnectedRepository _repo = new ConnectedRepository();
public DelegateCommand<object> SelectionChangedCommand { get; private set; }
public ObservableCollection<Aperture> Apertures { get; set; }
public ApertureDataGridviewmodel()
{
SelectionChangedCommand = new DelegateCommand<object>(SelectionChanged);
Apertures = new ObservableCollection<Aperture>(_repo.GetApertures());
}
public void SelectionChanged(object param)
{
if (param == null)
return;
}
查看
<UserControl x:Class="Photography.Views.ApertureDataGridView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:vw="clr-namespace:Photography.Views"
xmlns:prism="http://prismlibrary.com/"
prism:viewmodelLocator.AutoWireviewmodel="True">
<Grid>
<Grid.Resources>
<vw:TableEditwindow x:Key="TableEditwindow"/>
</Grid.Resources>
<Grid.ColumnDeFinitions>
<ColumnDeFinition/>
</Grid.ColumnDeFinitions>
<Grid.RowDeFinitions>
<RowDeFinition/>
</Grid.RowDeFinitions>
<DataGrid x:Name="DataGridEdit"
AreRowDetailsFrozen="True"
AutoGenerateColumns="False"
Grid.Column="0"
Grid.Row="0"
displayMemberPath="{Binding ApertureName}"
IsReadOnly="False"
ItemsSource="{Binding Apertures}"
SelectionMode="Single"
SelectionUnit="FullRow"
Style="{DynamicResource SelectorDataGrid}"
VerticalAlignment="Top"
VerticalScrollBarVisibility="Auto">
<DataGrid.CellStyle>
<Style targettype="{x:Type DataGridCell}">
<Style.Triggers>
<Trigger Property="DataGridCell.IsSelected" Value="True">
<Setter Property="Background" Value="{DynamicResource DatagridRowSelected}" />
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<prism:InvokeCommandAction Command="{Binding SelectionChangedCommand}"
CommandParameter="{Binding SelectedItem,ElementName=DataGridEdit}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<DataGrid.Resources>
<Style targettype="DataGridColumnHeader">
<Setter Property="Background" Value="{StaticResource MainBackgroundColor}"/>
<Setter Property="BorderBrush" Value="{DynamicResource MainForegroundColor}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Foreground" Value="{DynamicResource MainForegroundColor}"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding ApertureId}" Visibility="Hidden"/>
<DataGridTextColumn Binding="{Binding ApertureName}" Header="Name" Width="10*"/>
<DataGridCheckBoxColumn Binding="{Binding Active}" Header="Active" Width="3*"/>
<DataGridTextColumn Binding="{Binding Notes}" Header="Notes" Width="10*"/>
</DataGrid.Columns>
<DataGrid.RowDetailstemplate>
<DataTemplate>
<DockPanel LastChildFill="False" Margin="5 5 5 5 ">
<Grid>
<Grid.ColumnDeFinitions>
<ColumnDeFinition Width="1*"/>
<ColumnDeFinition Width="2*"/>
</Grid.ColumnDeFinitions>
<Grid.RowDeFinitions>
<RowDeFinition Height="auto"/>
<RowDeFinition Height="auto"/>
<RowDeFinition Height=" auto"/>
</Grid.RowDeFinitions>
<Label Grid.Column="0" Grid.Row="0" Content="Name: " Style="{DynamicResource LabelExpandedRow}"/>
<TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding ApertureName}" VerticalAlignment="Center"/>
<Label Grid.Column="0" Grid.Row="1" Content="Active: " Style="{DynamicResource LabelExpandedRow}"/>
<TextBlock Grid.Column="1" Grid.Row="1" Text="{Binding Active}" VerticalAlignment="Center"/>
<Label Grid.Column="0" Grid.Row="2" Content="Notes: " Style="{DynamicResource LabelExpandedRow}"/>
<TextBox Grid.Column="1" Grid.Row="2" Text="{Binding Notes}" Style="{StaticResource TextBoxExpandedRow}"/>
</Grid>
</DockPanel>
</DataTemplate>
</DataGrid.RowDetailstemplate>
</DataGrid>
</Grid>
</UserControl>
调用窗口视图
<!--row 2-->
<ContentControl
Grid.Column="0"
Grid.ColumnSpan="3"
Grid.Row="2"
Margin="10 10 10 10"
Visibility="{Binding ViewVisible,Converter={StaticResource ControlViewVisibleConverter},ConverterParameter=Aperture}">
<vw:ApertureDataGridView Visibility="Visible"/>
</ContentControl>
我在应用程序的不同部分使用了完全相同的代码。谁能识别我在做什么错?
解决方法
令人难以置信的是,调试停止无法正常工作。将其移动到新位置后,我立即发现DelegateCommand正在运行。以前从未经历过。 谢谢大家的答复。