Поскольку ios автоматически применяет набор фиксированных кадров при встраивании ContainerController. Вы должны запретить переводить маску авторазмера в LayoutConstraint.
Это можно сделать, установив следующее свойство в методе ContainerViewController (целевой контроллер) ViewdidLoad.
view.translatesAutoresizingMaskIntoConstraints = false
Да, просто необходимо разбудить один уровень. Я попробовал бы привязку ElementName
первый и обратился бы к RelativeSource
только если необходимый. Например, я предпочел бы это:
<DataGrid x:Name="_grid">
...
<Button Command="{Binding DataContext.RemoveItem, ElementName=_grid}"/>
...
</DataGrid>
Тем не менее компилятор XAML может получить свои штанишки в узле когда дело доходит до имен элементов и определяющий объем в средствах управления, таким образом, Вы, возможно, должны обратиться к RelativeSource
:
<DataGrid x:Name="_grid">
...
<Button Command="{Binding DataContext.RemoveItem,
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type DataGrid}}
}"/>
...
</DataGrid>
только необходимо искать вплоть до контекста данных, будет модель представления. Вы могли искать UserControl
, если бы Вы хотели к - не уверенный, что это действительно имеет значение. Оба - довольно хрупкая привязка, который является, почему я предпочитаю эти ElementName
подход.