【发布时间】:2021-02-13 02:24:46
【问题描述】:
我有一个文本框:
<TextBox Text="{Binding Greeting}" TextInput="OnTextInput"/>
如您所见,我正在尝试绑定到TextInput 事件,以便在用户键入一些文本时我可以做一些事情。但是无论我做什么,我都会在绑定时收到此错误:
无法为参数 System.Private.CoreLib:System.String 的 Avalonia.Input:Avalonia.Input.InputElement 类型的属性 TextInput 找到合适的 setter 或 adder,可用的 setter 参数列表有: System.EventHandler`1[[Avalonia.Input.TextInputEventArgs, Avalonia.Input, Version=0.10.0.0, Culture=neutral, PublicKeyToken=c8d484a7012f9a8b]]
我尝试在我的视图模型上定义一个名为 OnTextInput 的方法,并在包含文本框的视图的代码隐藏中定义。它看起来像这样:
public void OnTextInput(object sender, TextInputEventArgs e)
{
}
我还尝试使用RoutedEventArgs 代替TextInputEventArgs。但无论我做什么,我仍然会得到那个错误。如何设置此绑定,以便在用户键入文本时执行某些操作?
【问题讨论】:
-
尝试使用
Avalonia.Input.TextInputEventArgs e或using Avalonia.Input;。这应该可以解决您遇到的错误。 -
但是请随时再次发表评论,因为我认为
TextInput不是您想要实现的。相反,我认为您想检查绑定上的更改文本。我可以提供一个答案... -
是的,我有
using Avalonia.Input。更改了我的装订文本?我该怎么做? -
你的代码对我有用(编译没有错误)。也许您的 Window 未正确附加到您的 CodeBehind?
-
哦,我明白了,事件处理程序需要进入后面的代码,而不是视图模型。不知道为什么以前不起作用,也许我需要构建项目让他们看到对方?现在我正在尝试弄清楚如何使 UI 响应用户输入...必须有某种方法可以访问 UI 中的控件或从此上下文中的视图模型...
标签: c# xaml avaloniaui