建站知识 - 独立站SEO建站专家 - 深圳网站建设技术

推荐几款优秀免费开源的导航网站

Caliburn.Micro 是一款流行的 MVVM 框架,用于在 WPF 应用程序中实现松散耦合的设计模式。下面是一个简单的使用 Caliburn.Micro 的 WPF 示例。 ViewModel: “`csharp using Caliburn.Micro; public class ShellViewModel : Screen { private string _firstName; private string _lastName; private string _fullName; public string FirstName { get { return _firstName; } set { _firstName = value; NotifyOfPropertyChange(() => FirstName); NotifyOfPropertyChange(() => FullName); } } public string LastName { get { return _lastName; } set { _lastName = value; NotifyOfPropertyChange(() => LastName); NotifyOfPropertyChange(() => FullName); } } public string FullName { get { return $”{FirstName} {LastName}”; } } } “` View: “`xaml <Window x:Class=”WpfApp1.ShellView” xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation” xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml” xmlns:cal=”http://www.caliburnproject.org” Title=”ShellView” Height=”300″ Width=”300″> <Grid> <StackPanel> <TextBlock Text=”First Name” /> <TextBox x:Name=”FirstName” /> <TextBlock Text=”Last Name” /> <TextBox x:Name=”LastName” /> <TextBlock Text=”Full Name” /> <TextBlock Text=”{Binding FullName}” /> </StackPanel> </Grid> </Window> “` 在这个例子中,我们创建了一个名为 `ShellViewModel` 的视图模型,其中包含了 `FirstName`、`LastName` 和 `FullName` 属性。`FullName` 是一个只读属性,它返回 `FirstName` 和 `LastName` 的组合。在视图中,我们使用 `TextBox` 控件绑定 `FirstName` 和 `LastName` 属性,并使用 `TextBlock` 控件绑定 `FullName` 属性。 请注意,在视图中使用 `{Binding}` 表达式绑定视图模型属性,`Caliburn.Micro` 将自动创建一个与视图模型绑定的对象,并将其设置为视图的 `DataContext`。 最后,在 `App.xaml.cs` 中配置 `Caliburn.Micro`: “`csharp using Caliburn.Micro; public partial class App : Application { private readonly SimpleContainer container = new SimpleContainer(); protected override void Configure() { container.Singleton<ShellViewModel>(); } protected override object GetInstance(Type service, string key) { return container.GetInstance(service, key); } protected override IEnumerable<object> GetAllInstances(Type service) { return container.GetAllInstances(service); } protected override void BuildUp(object instance) { container.BuildUp(instance); } } “` 这里我们将 `ShellViewModel` 注册为单例模式。这意味着,在整个应用程序生命周期中,只会创建一个 `ShellViewModel` 对象。 这是一个非常简单的示例,但它展示了如何使用 Caliburn.Micro 在 WPF 应用程序中实现 MVVM 设计模式。