https://youtu.be/Tu7asErZc54?si=zdzp2qJMQrceQkV0
.NET 9のリリースに部分プロパティが盛り込まれ、早速CommunityToolkit.MvvmNuGetパッケージのv8.4.0-preview2もリリースされました。
これにより、部分プロパティを活用したObservablePropertyが使えるようになりました。
具体的には、
これまでは以下のように自分でフィールド
を書き、ソースジェネレーターにプロパティを書いてもらってましたが...
using CommunityToolkit.Mvvm.ComponentModel;
using Microsoft.UI.Xaml.Controls;
namespace CommunityToolkitMvvmPartialProperty;
public partial class SomeViewModel : ObservableObject
{
[ObservableProperty]
private string? _someText;
}
生成コード
v8.4.0-preview2では、以下のように自分で部分プロパティ
を書き、ソースジェネレーターに実装を書いてもらえるようになりました。
using CommunityToolkit.Mvvm.ComponentModel;
using Microsoft.UI.Xaml.Controls;
namespace CommunityToolkitMvvmPartialProperty;
public partial class SomeViewModel : ObservableObject
{
[ObservableProperty]
public partial string? SomeText { get; set; }
}
生成コード
メリットとしては、
-
フィールド
(_someText
)ではなく、XAMLで実際にバインディングするプロパティ
(SomeText
)を書くのでコードがより直観的になった
- プロパティ名で検索しやすくなった
- プロパティのsetterを
private
にできる(TwoWay
バインディングをできなくする)public partial string? SomeText { get; private set; }
デメリットとしては、
...今のところは思いつきません。
今回は以上です。
Happy Coding!😊
Discussion