0
我們的系統中有幾個BindableProperties。他們大部分都在工作,而我之前沒有遇到過這個問題。我正在測試UWP,但其他平臺上的問題可能相同。Xamarin Forms - BindableProperty不工作
你可以看到在這裏下載代碼,看看到底是什麼我談論 https://[email protected]/ChristianFindlay/xamarin-forms-scratch.git
這裏是我的代碼:
public class ExtendedEntry : Entry
{
public static readonly BindableProperty TestProperty =
BindableProperty.Create<ExtendedEntry, int>
(
p => p.Test,
0,
BindingMode.TwoWay,
propertyChanging: TestChanging
);
public int Test
{
get
{
return (int)GetValue(TestProperty);
}
set
{
SetValue(TestProperty, value);
}
}
private static void TestChanging(BindableObject bindable, int oldValue, int newValue)
{
var ctrl = (ExtendedEntry)bindable;
ctrl.Test = newValue;
}
}
這是XAML:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:TestXamarinForms"
x:Class="TestXamarinForms.BindablePropertyPage">
<ContentPage.Content>
<StackLayout>
<local:ExtendedEntry Test="1" />
</StackLayout>
</ContentPage.Content>
</ContentPage>
我可以看到在Test的setter中,1被傳遞給SetValue。但是,在下一行中,我查看GetValue作爲監視窗口中的屬性,並且值爲0. BindableProperty不會粘住。我試着用幾個不同的Create重載實例化BindingProperty,但似乎沒有任何工作。我究竟做錯了什麼?