WPF DataGrid.RowDetailsTemplate中包含DataGrid 问题

水墨林兮 2017-01-12 11:47:03
碰到一个问题如下:
外层DataGrid 我称为A,RowDetailsTempalate 中的 DataGrid 我成为B,B中的MuneItem中的Command没法绑定ViewModel中的事件,但是B中通过EnventTrigger可以正常绑定事件并且触发,请教是什么问题?

<Grid>
<DataGrid Name="dgvCarTakeAttendance" ItemsSource="{Binding OperationCollection}"
HeadersVisibility="All"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
Margin="1"
CanUserResizeRows="False"
LoadingRow="dgvCarInspection_LoadingRow"
UnloadingRow="DgvCarTakeAttendance_OnUnloadingRow"
Style="{StaticResource DataGridStyle}"
RowDetailsVisibilityMode="VisibleWhenSelected">
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<DataGrid ItemsSource="{Binding ListInstructionsOperation}"
HeadersVisibility="Column"
SelectionMode="Extended"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
Margin="1"
CanUserResizeRows="False"
Style="{StaticResource DataGridStyle}"
MaxHeight="90">
<DataGrid.RowHeaderStyle>
<Style TargetType="{x:Type DataGridRowHeader}">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
</Style>
</DataGrid.RowHeaderStyle>

<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<cmd:EventToCommand
Command="{Binding DataContext.CarSelectedChangedCommand, RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" />
</i:EventTrigger>
</i:Interaction.Triggers>

<DataGrid.Columns>

<!--序号-->
<DataGridTemplateColumn MinWidth="50" Width="Auto" Visibility="Collapsed">
<DataGridTemplateColumn.Header>
<TextBlock Text="序号" HorizontalAlignment="Center"
VerticalAlignment="Center" />
</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock
Text="{Binding Path=Sequence,Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
Width="100" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock
Text="{Binding Path=Feedback,Mode=OneWay, UpdateSourceTrigger=PropertyChanged,Converter={StaticResource MessageToCarResultConverter}}"
Width="150" HorizontalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

<!-- 空白列可以被选中 -->
<!--预留空白行可以被选中-->
<DataGridTextColumn Width="*" />
</DataGrid.Columns>

<DataGrid.ContextMenu>
<ContextMenu>
<!--移除监控-->
<MenuItem Command="{Binding ClearSelectedCarInspectionCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}, Path=PlacementTarget}">
<MenuItem.Header>
<TextBlock Text="{DynamicResource MonitorDataGridWorkbenchRemove}"
HorizontalAlignment="Left" VerticalAlignment="Center"
Background="Transparent"
Foreground="#333" />
</MenuItem.Header>
</MenuItem>

<!--移除全部-->
<MenuItem Command="{Binding ClearAllCarInspectionCommand}">
<MenuItem.Header>
<TextBlock Text="{DynamicResource MonitorDataGridWorkbenchClear}"
HorizontalAlignment="Left" VerticalAlignment="Center"
Background="Transparent"
Foreground="#333" />
</MenuItem.Header>
</MenuItem>
</ContextMenu>
</DataGrid.ContextMenu>
</DataGrid>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
<DataGrid.Columns>
<!--操作Id-->
<DataGridTextColumn Header="操作Id" Width="Auto" MinWidth="80" Binding="{Binding Path=OperationId}" />
<!--操作类型-->
<DataGridTextColumn Header="操作类型" Width="Auto" MinWidth="80" Binding="{Binding Path=OperationType}" />
<!--操作下发时间-->
<DataGridTextColumn Header="操作下发时间" Width="Auto" MinWidth="80" Binding="{Binding Path=OperationTime}" />
<!--空白行可以被选中-->
<DataGridTextColumn Header="" Width="*" />
</DataGrid.Columns>
</DataGrid>
...全文
329 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
水墨林兮 2017-01-13
  • 打赏
  • 举报
回复
引用 1 楼 xinweilee 的回复:
调试一下,看看output里是否提示bindingerror
没有的 要是有的话我也不会到这里来问这个事情了,虽然后来我用别的方法实现了这个功能,但是不是很理解为什么绑定不到VM里面去
xinweilee 2017-01-12
  • 打赏
  • 举报
回复
调试一下,看看output里是否提示bindingerror

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧