我做了一個顯示文本的自定義視圖。Xamarin DataBinding bindableProperty(CustomView)
在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.cspublic 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"/>
其他頁面
it會工作得很好。但是,當我一個數據綁定到該
<local:TestView Test="{Binding post.uploader.username}"/>
那麼它不會desplay什麼...
它不是post.uploader.username值是錯誤的或一些這樣的事情的問題。因爲
<Label Text="{Binding post.uploader.username}"/>
我有這樣的代碼有權根據該故障線路,它只是正常工作太..
我到底做錯了什麼? 如何解決它..?
你可能需要實現'PropertyChanged'功能讓用戶界面知道你的價值更新 –
好吧,我會嘗試。但這會解釋爲什麼/// ///此工作和/// ///這不是?? –
uzu
因爲將它設置爲靜態值只需設置一次,就是這樣。在使用綁定時,值首先獲取默認值(空),綁定發生時值會更新。因爲你缺少屬性改變的邏輯值永遠不會更新在UI –