我制作了一个显示文字的自定义视图。
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"/>
它会工作得很好。但是当我将数据绑定到它时
<local:TestView Test="{Binding post.uploader.username}"/>
然后它不会显示任何东西......
这不是post.uploader.username值错误或某种事情的问题。因为
<Label Text="{Binding post.uploader.username}"/>
我在这个故障线下有这个代码,它也可以正常工作..
我在这里做错了什么? 如何修复它??
答案 0 :(得分:0)
您只能从TestView类中的feedBackStatusFromCsvFiles
属性对象进行绑定。例如,如果您要编写下一个代码:
BindableObject
您的<local:TestView Test="{Binding post.uploader.username}" />
对象必须具有BindableObject
属性对象,该对象具有post
属性对象,其具有uploader
属性字符串