Xamarin - 绑定自定义视图内容
Xamarin - bind custom view content
我创建了一个自定义视图,我想通过绑定来设置它的内容。这是我的:
<ContentView.Content>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="30"/>
</Grid.ColumnDefinitions>
<ffimageloadingsvg:SvgCachedImage Source="resource://CTP.SVG.exit.svg"
Grid.Row="0" Grid.Column="1"
HeightRequest="30"
WidthRequest="30"
HorizontalOptions="Center"
VerticalOptions="Center">
</ffimageloadingsvg:SvgCachedImage>
<redefinitions:BindableView Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2"
Content="{Binding View, Source={x:Reference this}, Mode=OneWay}"/>
</Grid>
</ContentView.Content>
按照 this 教程,我定义了我的 BindableView:
[ContentProperty(nameof(Content))]
public class BindableView : View
{
public static readonly BindableProperty ContentProperty =
BindableProperty.Create(
propertyName: nameof(Content),
returnType: typeof(View),
declaringType: typeof(BindableView),
defaultValue: default(View));
public View Content
{
get { return (View)GetValue(ContentProperty); }
set { SetValue(ContentProperty, value); }
}
}
但是 BindableView 永远不会显示,即使我静态定义了它的内容。
我错过了什么?
解决它的最简单方法是使用 ContentView 而不是自定义 BindableView.
我创建了一个自定义视图,我想通过绑定来设置它的内容。这是我的:
<ContentView.Content>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="30"/>
</Grid.ColumnDefinitions>
<ffimageloadingsvg:SvgCachedImage Source="resource://CTP.SVG.exit.svg"
Grid.Row="0" Grid.Column="1"
HeightRequest="30"
WidthRequest="30"
HorizontalOptions="Center"
VerticalOptions="Center">
</ffimageloadingsvg:SvgCachedImage>
<redefinitions:BindableView Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2"
Content="{Binding View, Source={x:Reference this}, Mode=OneWay}"/>
</Grid>
</ContentView.Content>
按照 this 教程,我定义了我的 BindableView:
[ContentProperty(nameof(Content))]
public class BindableView : View
{
public static readonly BindableProperty ContentProperty =
BindableProperty.Create(
propertyName: nameof(Content),
returnType: typeof(View),
declaringType: typeof(BindableView),
defaultValue: default(View));
public View Content
{
get { return (View)GetValue(ContentProperty); }
set { SetValue(ContentProperty, value); }
}
}
但是 BindableView 永远不会显示,即使我静态定义了它的内容。 我错过了什么?
解决它的最简单方法是使用 ContentView 而不是自定义 BindableView.