Avaloniaui奇怪问题记录之x:Name用不了
先上一段ReactiveUI.Validation的代码
因为Avaloniaui不能像wpf里面那样直接用x:Name的值做变量,所以这个view.Result直接提示找不到,虽然Avaloniaui提供了如下这样的写法。
但如果直接写成下面这样,还是会直接报错。
报错如下:

然后就开始找解决方法,找啊找啊就找到了下边这篇issue
发现他们早就解决这个问题了,装个nuget包就行了,看样子等版本到了0.11.x就没这个问题了,目前才0.10.3,还很遥远。。。
解决方法如下
先装一下这个nuget包:XamlNameReferenceGenerator

然后在csproj文件里写一下配置

这个就是帮你写了个部分类,把所有x:Name都加了上去。

所以我们要把所有的类都加上partial,改成部分类。
还要把我们写的InitializeComponent删掉,因为他帮我们写好了。

然后就没问题了。
参考资料:
AvaloniaUI/Avalonia.NameGenerator: Generates x:Name references to Avalonia XAML controls. (https://github.com/worldbeater/XamlNameReferenceGenerator)
rxui: Add WireUpControls to Avalonia.ReactiveUI by worldbeater · Pull Request #4931 · AvaloniaUI/Avalonia (https://github.com/AvaloniaUI/Avalonia/pull/4931)

