Catel оборачивает содержимое пользовательского контроля в сетку viewmodel, даже когда называете сетку контента "__catelInnerWrapper" - PullRequest
0 голосов
/ 18 января 2019

У меня проблема с созданием сетки модели представления вручную в 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. Вы знаете, почему это может происходить? Спасибо

1 Ответ

0 голосов
/ 18 января 2019

Глядя на источник, вы делаете правильные вещи. Если вы на 100% уверены, что:

  1. Вы используете правильную сборку (например, полностью перестроенное приложение, а не неправильная конфигурация)
  2. Снуп - правильный

Тогда, пожалуйста, сообщите о проблеме (с минимальным воспроизведением) на https://github.com/catel/catel/, и мы позаботимся о том, чтобы она была исправлена ​​в Catel 5.9 (в настоящее время в бета-версии, которая скоро будет выпущена, но мы будем ждать этой).

...