即使在命名内容网格“__catelInnerWrapper”时,Catel 也会将用户控件内容包装在视图模型网格中

Catel wraps usercontrol content in viewmodel grid even when naming content grid "__catelInnerWrapper"

我在 Catel 中为 Catel 用户控件手动创建视图模型网格时遇到问题。该文档暗示通过将内容网格命名为“__catelInnerWrapper”,内容将不会被 ViewModelWrapperService 用另一个网格包装,而是使用我的网格。我想出于视觉状态管理的目的这样做。使用 Snoopwpf 我可以看到用户控件仍在包装中。
(https://i.imgur.com/teSu9La.png)

我尝试使用 Catel 5.8.0 和 5.9.0 beta 0 创建一个新的 Catel 项目模板,使用 .NET 4.6.1 在主窗口中使用单个用户控件来测试简化的应用程序并看到相同的行为。

<catel:UserControl x:Class="CatelTest.Views.MyUserControl"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"           
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:catel="http://schemas.catelproject.com">

    <Grid x:Name="__catelInnerWrapper">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>      
        <Label Grid.Row="0" Content="{Binding Title}" />
        <Label Grid.Row="1" Content="My User Control" />
    </Grid> 
</catel:UserControl>    

在逐步执行 ViewModelWrappingService.xaml.cs 代码时,似乎用户控件内容名称 属性 始终解析为空,因此与 InnerWrapperName 不匹配。你知道为什么会这样吗?谢谢

查看源代码时,您做的是正确的。如果您 100% 确定:

  1. 您使用的是正确的版本(例如完全重建的应用程序,而不是 配置错误)
  2. Snoop 是正确的

那么请在 https://github.com/catel/catel/ 报告一个问题(以最少的重现),我们将确保它在 Catel 5.9 中得到修复(目前处于测试阶段,即将发布,但我们会等待这个) .