数据模板中的 EventToCommand

2023-12-03

我使用 MVVM-light-Toolkit 中的 EventToCommand 类来处理 WPF-DataGrid 中的 AutoGenerateColumn-Event。它在我的 Main-DataGrid 中工作正常,但我在 RowDetailsTemplate 中使用另一个 DataGrid,在这里我遇到了问题: AutoGenerateColumn 在生成 EventToCommand-Object 之前触发。这个问题有解决办法吗? 这是我的 Xaml 代码的一部分:

<DataGrid DockPanel.Dock="Top" AutoGenerateColumns="True" Name="table" VerticalAlignment="Top" ItemsSource="{Binding PartBatchList}" IsReadOnly="True">
    <i:Interaction.Triggers>
            <i:EventTrigger EventName="AutoGeneratingColumn">
                <hgc:EventToCommand Command="{Binding AutoGeneratingColumnCommand}" PassEventArgsToCommand="True"/>
            </i:EventTrigger>
        </i:Interaction.Triggers>
    <DataGrid.RowDetailsTemplate>
        <DataTemplate>
            <StackPanel Margin="30,0,30,30" Orientation="Vertical">
                <Border CornerRadius="4" Padding="5" Background="White">
                    <DataGrid ItemsSource="{Binding Workpieces}"  
                                    CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserSortColumns="False"
                                    AutoGenerateColumns="True" AutoGeneratingColumn="WorkpieceListAutoGeneratingColumn">
                        <i:Interaction.Triggers>
                            <i:EventTrigger EventName="AutoGeneratingColumn">
                                <hgc:EventToCommand Command="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGrid},AncestorLevel=2}, Path=DataContext.AutoGeneratingColumnCommand}" PassEventArgsToCommand="True"/>
                            </i:EventTrigger>
                        </i:Interaction.Triggers>
                    </DataGrid>
                </Border>
            </StackPanel>
        </DataTemplate>
    </DataGrid.RowDetailsTemplate>

</DataGrid>

代码隐藏文件中的事件处理程序 WorkpieceListAutoGenerateColumn 被调用,我的 ViewModel 中的命令从未被调用。

Andreas


原因应该是你不能在同一个对象/事件组合上有一个事件处理程序和一个事件命令。去除AutoGeneratingColumn="WorkpieceListAutoGeneratingColumn"从您的 DataGrid 中应该调用该命令。 罢工>

我自己也遇到过这个问题:-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据模板中的 EventToCommand 的相关文章

随机推荐