DryIoC和CommunityToolkit.mvvm配合
时间: 2024-12-10 22:46:22 浏览: 10
DryIoc是一个轻量级的依赖注入容器,而CommunityToolkit.Mvvm则是一组方便开发MVVM应用的库。要让两者协同工作,你可以按照以下步骤:
1. **添加DryIoc到项目**[^1]:
```csharp
var container = new Container();
// 注册服务和ViewModels
container.Register<IBindableObject, BindableBase>();
```
这里注册`BindableBase`作为`IBindableObject`的实例,因为社区工具包可能期待`BindableBase`类具有特定接口。
2. **创建ViewModel并注入依赖**:
```csharp
class MyViewModel : BindableBase, IMyViewmodel
{
private string _title;
public string Title
{
get => _title;
set => SetProperty(ref _title, value);
}
public MyViewModel()
{
// 使用DryIoc获取依赖项
IMyDependency dependency = container.Resolve<IMyDependency>();
// 在构造函数中注入依赖
}
}
```
3. **使用`RaisePropertyChanged()`触发通知**:
当属性值改变时,`MyViewModel`会自动调用`RaisePropertyChanged()`来更新视图,这与CommunityToolkit.Mvvm中的`OnPropertyChanged()`功能相同。
4. **视图绑定**:
在XAML中,可以这样绑定标题:
```xaml
<TextBlock Text="{Binding Title}" />
```
干净的DI使得ViewModel和视图之间的解耦变得更加容易。
阅读全文