У меня проблема с созданием сетки модели представления вручную в Catel для пользовательского контроля Catel. Документация подразумевает, что путем присвоения имени сетке содержимого «__catelInnerWrapper», что содержимое не будет обернуто другой сеткой с помощью ViewModelWrapperService, и вместо этого будет использовать мою сетку. Я хотел бы сделать это для целей визуального управления состоянием. Используя Snoopwpf, я вижу, что пользовательский контроль все еще переносится.
(https://i.imgur.com/teSu9La.png)
Я попытался создать новый шаблон проекта Catel, используя Catel 5.8.0, а также 5.9.0 beta 0, используя .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 кажется, что свойство Name содержимого usercontrol всегда имеет нулевое значение и, следовательно, не соответствует InnerWrapperName. Вы знаете, почему это может происходить? Спасибо