WPF MVVM模式开发简明实现教程 6 其他绑定
WPF MVVM模式开发实现简明教程 2 初识 INotifyPropertyChanged
WPF MVVM模式开发实现简明教程 3-1 BaseCommand
WPF MVVM模式开发实现简明教程 4 ViewModelBase
WPF MVVM模式开发简明实现教程 5 使用MultiValueConverter进行多参数事件绑定
WPF MVVM模式开发简明实现教程 7 DevExpress MVVM
Style
Style文件夹下新增资源字典文件ButtonStyle.xaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <ResourceDictionary xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x= "http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local= "clr-namespace:WpfApp6.Style" > <Style x:Key= "myButtonStyle" TargetType= "Button" > <Setter Property= "Background" Value= "#3a3a3a" /> <Setter Property= "Width" Value= "50" /> <Setter Property= "Height" Value= "50" /> <Setter Property= "VerticalAlignment" Value= "Top" /> <Style.Triggers> <Trigger Property= "IsMouseOver" Value= "True" > <Setter Property= "Background" Value= "Red" /> </Trigger> </Style.Triggers> </Style> </ResourceDictionary> |
View改成
<Button Content="{Binding ButtonContent}" x:Name="button1" Style="{Binding ButtonStyle}" >
同时View里增加对应的ResourceDictionary
1 2 3 4 5 6 7 8 | <UserControl.Resources> <ResourceDictionary > <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source= "..\Style\MultiValueConverterResource.xaml" /> <ResourceDictionary Source= "..\Style\ButtonStyle.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </UserControl.Resources> |
ViewModel增加
1 2 3 4 5 6 7 8 9 10 | private Style buttonStyle; public Style ButtonStyle { get { return buttonStyle; } set { buttonStyle = value; OnPropertyChanged( "ButtonStyle" ); } } |
程序初始化时赋值
1 | model.ButtonStyle = (Style) this .FindResource( "myButtonStyle" ); |
运行效果
IsEnabled
View继续增加
1 | <Button Content= "{Binding ButtonContent}" x:Name= "button1" Style= "{Binding ButtonStyle}" IsEnabled= "{Binding ButtonIsEnabled}" > |
ViewModel增加
1 2 3 4 5 6 7 8 9 10 11 | private bool buttonIsEnabled; public bool ButtonIsEnabled { get { return buttonIsEnabled; } set { buttonIsEnabled = value; OnPropertyChanged( "ButtonIsEnabled" ); } } |
初始化时改值
1 | model.ButtonIsEnabled = false ; |
运行效果
其他绑定都是一样的,不再多说
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架