wpf mvvm框架搭建 使用 MVVMlIght 工程事例带自定义控件
时间: 2023-08-06 14:07:52 浏览: 119
好的,首先我们需要安装MVVM Light框架,可以通过NuGet包管理器进行安装。
接下来,我们可以创建一个新的WPF项目,然后在项目中添加MVVM Light的参考。
在项目中添加自定义控件,可以通过继承现有的控件或者创建全新的控件。这里我们以创建一个自定义Button为例。
在项目中创建一个新的文件夹,命名为“Controls”,然后在该文件夹下创建一个新的类,命名为“CustomButton”。
在该类中,我们需要继承现有的Button控件,并且重写其默认样式。代码如下:
```csharp
public class CustomButton : Button
{
static CustomButton()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomButton), new FrameworkPropertyMetadata(typeof(CustomButton)));
}
public CustomButton()
{
this.Background = Brushes.Green;
this.Foreground = Brushes.White;
}
}
```
在XAML中,我们需要定义CustomButton的默认样式。代码如下:
```xaml
<Style TargetType="{x:Type local:CustomButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:CustomButton}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
```
最后,在视图模型中使用自定义控件,代码如下:
```csharp
public class MainViewModel : ViewModelBase
{
public CustomButton MyButton { get; set; }
public MainViewModel()
{
MyButton = new CustomButton();
MyButton.Content = "Click me!";
}
}
```
在视图中,我们可以使用DataTemplate来绑定自定义控件。代码如下:
```xaml
<Window.Resources>
<DataTemplate DataType="{x:Type local:CustomButton}">
<ContentPresenter Content="{Binding}" />
</DataTemplate>
</Window.Resources>
<Grid>
<local:CustomButton Content="{Binding MyButton}" />
</Grid>
```
这里我们使用了DataTemplate来绑定自定义控件,这样我们就可以在视图中使用自定义控件了。
以上就是使用MVVM Light框架搭建WPF应用程序并使用自定义控件的基本步骤。
阅读全文