C# 可绑定属性的Setter从不激发

C# 可绑定属性的Setter从不激发,c#,wpf,data-binding,xamarin.forms,C#,Wpf,Data Binding,Xamarin.forms,我为标签创建了自定义渲染器。现在我想操纵它的焦点状态,所以我创建了bindable属性和事件。当我从自定义渲染器更改bindable属性时,它工作得很好,如下所示:Element.IsFocused=true 但是,当我从视图模型更改它时,它会影响XAML视图,但由于某些原因,它不会为此属性调用setter。代码如下: 在自定义类中: public new static readonly BindableProperty IsFocusedProperty = Binda

我为标签创建了自定义渲染器。现在我想操纵它的焦点状态,所以我创建了bindable属性和事件。当我从自定义渲染器更改bindable属性时,它工作得很好,如下所示:
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总是只能从自定义渲染器调用

我想我可能会错过一些关于可绑定财产工作的内容

但是,当我从视图模型更改它时,它会影响XAML视图,但由于某些原因,它不会为此属性调用setter


是的,这是WPF的一个常见错误。XAML生成的代码不调用setter,而是立即更改绑定依赖项属性。除非附加
PropertyChangedCallback
事件,否则无法中断此事件。

以下是正确使用此事件的示例: