1
我爲標籤創建了一個自定義渲染器。現在我想操縱它的焦點狀態,所以我創建了可綁定的屬性和事件。當我更改自定義渲染器的可綁定屬性時,它工作正常,如下所示:Element.IsFocused = true;
但是,當我從視圖模型中更改它時,它會影響XAML視圖,但由於某些原因,不會爲此屬性調用setter。下面是代碼:可設置屬性的設置程序永遠不會觸發
在自定義類:
public new static readonly BindableProperty IsFocusedProperty =
BindableProperty.Create(nameof(IsFocused), typeof(bool), typeof(FloatingEntry), false);
public new bool IsFocused
{
get { return (bool)GetValue(IsFocusedProperty); }
set
{
SetValue(IsFocusedProperty, value);
if (value) Focus();
}
}
在XAML:
IsFocused="{Binding PasswordEntryIsFocused}"
在視圖模型:
private bool _passwordEntryIsFocused;
public bool PasswordEntryIsFocused
{
get { return _passwordEntryIsFocused; }
set
{
SetProperty(ref _passwordEntryIsFocused, value);
}
}
在視圖模型中的一些方法:PasswordEntryIsFocused = true;
這不是關於new
關鍵字,我試過沒有它。 而綁定的作品,因爲我試圖綁定它與視覺屬性,如IsVisible
,它是像它應該的工作,但setter總是隻從一個自定義渲染器調用。
我想我可能會錯過一些可綁定屬性工作的環境。
以下是正確使用它的示例: https://forums.xamarin.com/discussion/19320/customcontrol –