記一次Microsoft.Toolkit.Mvvm(MVVM Toolkit)的兼容性問題


今天在目標框架為framework4.6.1的wpf項目中使用Microsoft.Toolkit.Mvvm7.1.1出現了一個比較怪異的編譯時錯誤,前提是打開了 工具>選項>環境>預覽功能>適用於NET Framework的新版WPF XAML設計器(需要重啟) 。Visual Studio 2019 (16.10以上版本)

相關鏈接:https://docs.microsoft.com/zh-cn/visualstudio/xaml-tools/xaml-design-time-sample-data?view=vs-2019

一、定義如下類:

public class Class1 : Microsoft.Toolkit.Mvvm.ComponentModel.ObservableObject
{
        
}

然后在xaml文件中使用它:

<Window.Resources>
        <local:Class1 x:Key="bbb"/>
</Window.Resources>

標紅處報錯: XDG004無法分配指定的值。應是以下類型:"Object"  。該錯誤導致當前xaml設計器無法正常顯示,但啟動程序的話,正常運行。

二、將xaml代碼改為:

<Window.DataContext>
        <local:Class1 x:Name="aaa"/>
</Window.DataContext>

標紅處報錯報錯: XDG004無法分配指定的值。應是以下類型:"Object XDG004附加的屬性"Name"只能應用到從"Obiect"派生的類型。 。同樣導致當前xaml設計器無法正常顯示,啟動程序的話,正常運行。

三、修改了 Class1 類,將其父類刪除后程序沒有報錯。

public class Class1
{
        
}

 

四、將 Microsoft.Toolkit.Mvvm.ComponentModel.ObservableObject 重新作為 Class1 類的父類,並將 工具>選項>環境>預覽功能>適用於NET Framework的新版WPF XAML設計器(需要重啟) 關閉。

將 工具>選項>環境>預覽功能>適用於NET Framework的新版WPF XAML設計器(需要重啟) 關閉后,程序不再報錯。

五、另創一個基於.net 5的wpf項目如上進行實驗,錯誤全部消失了

 

總結:.net framework框架下的wpf項目使用Microsoft.Toolkit.Mvvm,在Visual Studio 2019 (16.10以上版本)開啟工具>選項>環境>預覽功能>適用於NET Framework的新版WPF XAML設計器(需要重啟)功能時,會出現兼容性問題。不清楚問題產生的原因與是否還有其它隱患。

 

相關鏈接:https://docs.microsoft.com/zh-cn/windows/communitytoolkit/mvvm/introduction


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM