Avaloniaui奇怪問題記錄之x:Name用不了
先上一段ReactiveUI.Validation的代碼
因為Avaloniaui不能像wpf里面那樣直接用x:Name的值做變量,所以這個view.Result直接提示找不到,雖然Avaloniaui提供了如下這樣的寫法。
但如果直接寫成下面這樣,還是會直接報錯。
報錯如下:

然后就開始找解決方法,找啊找啊就找到了下邊這篇issue
發(fā)現(xiàn)他們早就解決這個問題了,裝個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)
標簽: