gpt4 book ai didi

c# - Xamarin DataBinding 到 bindableProperty (CustomView)

转载 作者:太空宇宙 更新时间:2023-11-03 15:07:03 30 4
gpt4 key购买 nike

我制作了一个显示文本的自定义 View 。

在 TestView.xaml 中

<?xml version="1.0" encoding="UTF-8"?>
<ContentView
xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="EodiRoad.TestView">
<StackLayout>

<Label Text="{Binding Test}"/>
<Label Text="this is test view"/>

</StackLayout>
</ContentView>

和代码隐藏

在 TestView.xaml.cs 中

    public partial class TestView : ContentView
{


public static BindableProperty TestProperty =
BindableProperty.Create(
propertyName: "Test",
returnType: typeof(string),
declaringType: typeof(TestView),
defaultValue:"???"
);

public string Test
{
get
{ return (string)GetValue(TestProperty); }
set
{
Debug.WriteLine("test setted value = " + (string)value);
SetValue(TestProperty, value);
}
}



public TestView()
{
InitializeComponent();
BindingContext = this;
}
}

当我使用这个时,会出现其他类似的页面

<local:TestView Test="hjhkhjk"/>

它会工作得很好。但是当我将数据绑定(bind)到它时

<local:TestView Test="{Binding post.uploader.username}"/>

然后它不会显示任何东西...

这不是 post.uploader.username 值错误之类的问题。因为

<Label Text="{Binding post.uploader.username}"/>

我有这段代码就在那条故障线下面,它也能正常工作..

我在这里做错了什么?如何修复它..?

最佳答案

您只能从 TestView 类中的 BindableObject 属性对象进行绑定(bind)。例如,如果您将编写下一个代码:

<local:TestView Test="{Binding post.uploader.username}" />

你的 BindableObject 对象必须有 post 属性对象,它有 uploader 属性对象,它有 username 属性字符串

关于c# - Xamarin DataBinding 到 bindableProperty (CustomView),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42928565/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com