C# 我如何创建两个部分来集中精力,另一个部分来写作?

C# 我如何创建两个部分来集中精力,另一个部分来写作?,c#,xaml,xamarin.forms,C#,Xaml,Xamarin.forms,我用这段代码来关注一个条目,它是一个custon条目 受保护的覆盖无效OnElementPropertyChanged(对象发送方,PropertyChangedEventArgs e) { base.OnElementPropertyChanged(发送方,e); if(e.PropertyName==Entry.IsFocusedProperty.PropertyName) { //位置1.此代码用于聚焦 } //位置2.在此处输入用户写入时的文本 } 我如何知道用户是否正在写?但不要同时

我用这段代码来关注一个条目,它是一个custon条目

受保护的覆盖无效OnElementPropertyChanged(对象发送方,PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(发送方,e);
if(e.PropertyName==Entry.IsFocusedProperty.PropertyName)
{
//位置1.此代码用于聚焦
}
//位置2.在此处输入用户写入时的文本
}

我如何知道用户是否正在写?但不要同时输入两个位置。

选项1:您可以设置TextProperty以检查用户编辑

protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
    base.OnElementPropertyChanged(sender, e);

    if (e.PropertyName == Entry.IsFocusedProperty.PropertyName)
    {
        //place1. this code is use to focus
    }

    if (e.PropertyName == Entry.TextProperty.PropertyName)
    {
        //place2. this code is use to edit 

        var content = Element.Text;
    }
}
选项2:

您可以设置条目的TextChanged

protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
    base.OnElementChanged(e);

    if(Control!=null)
    {
        Element.TextChanged += Element_TextChanged;
    }

}

private void Element_TextChanged(object sender, TextChangedEventArgs e)
{
    // var content = Element.Text;
}
protected override void OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
if(控件!=null)
{
Element.TextChanged+=元素_TextChanged;
}
}
私有void元素_TextChanged(对象发送方,textchangedventargs e)
{
//var content=Element.Text;
}

@Jason帮帮我好吗?你能发布你的自定义控件吗?你可以在构造函数中或在方法
OnElementChanged
中定义它们。如果你想获得更多的输入事件,你可以检查元素的源代码。@asdww你已经分配了赏金并将这个问题标记为Answered@LucasZhang-请帮帮我具有