当前位置: 首页 > wzjs >正文

怎样推广一个网站云建站哪家好

怎样推广一个网站,云建站哪家好,手机端便民服务平台网站建设,装修公司简介范文🌲WPF 教程:给 TreeView 添加 SelectedItem 双向绑定支持(MVVM-Friendly) 在 WPF 的 MVVM 应用中,TreeView 是非常常见的控件,但它有个“顽固”的缺陷: ❗它的 SelectedItem 不是依赖属性&…

🌲WPF 教程:给 TreeView 添加 SelectedItem 双向绑定支持(MVVM-Friendly)

在 WPF 的 MVVM 应用中,TreeView 是非常常见的控件,但它有个“顽固”的缺陷:

❗它的 SelectedItem 不是依赖属性,无法直接绑定到 ViewModel

这对于追求纯粹 MVVM 架构的开发者来说,很不友好。别担心,本文将教你如何写一个自定义 Behavior,让 TreeView 也能优雅地绑定 SelectedItem


🧠 核心思路

利用 Microsoft.Xaml.Behaviors.Wpf 提供的 Behavior<T>,监听 TreeView.SelectedItemChanged 事件,并同步绑定到 ViewModel,同时支持反向设置。


🧙‍♂️ 魔法代码:BindableSelectedItemBehavior.cs

using Microsoft.Xaml.Behaviors;namespace MVBuilder.Behaviours
{/// <summary>/// 让 WPF TreeView 支持 SelectedItem 双向绑定的行为类。/// 应用于 TreeView 后,可在 ViewModel 中直接使用绑定方式访问/设置选中项。/// </summary>public class BindableSelectedItemBehavior : Behavior<TreeView>{/// <summary>/// 可绑定的 SelectedItem 属性(同步 TreeView.SelectedItem)/// </summary>public object? SelectedItem{get => GetValue(SelectedItemProperty);set => SetValue(SelectedItemProperty, value);}/// <summary>/// SelectedItem 依赖属性注册/// </summary>public static readonly DependencyProperty SelectedItemProperty =DependencyProperty.Register(nameof(SelectedItem),typeof(object),typeof(BindableSelectedItemBehavior),new UIPropertyMetadata(null, OnSelectedItemChanged));/// <summary>/// 当 SelectedItem 属性变化时,选中对应的 TreeViewItem/// </summary>private static void OnSelectedItemChanged(DependencyObject d, DependencyPropertyChangedEventArgs e){if (e.NewValue is TreeViewItem item){item.SetValue(TreeViewItem.IsSelectedProperty, true);}}/// <summary>/// 附加行为时,注册 TreeView 的 SelectedItemChanged 事件/// </summary>protected override void OnAttached(){base.OnAttached();AssociatedObject.SelectedItemChanged += OnTreeViewSelectedItemChanged;}/// <summary>/// 移除行为时,注销事件,避免内存泄漏/// </summary>protected override void OnDetaching(){base.OnDetaching();AssociatedObject.SelectedItemChanged -= OnTreeViewSelectedItemChanged;}/// <summary>/// 当 TreeView 选中项变化,更新 SelectedItem 依赖属性(同步到 ViewModel)/// </summary>private void OnTreeViewSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e){SetCurrentValue(SelectedItemProperty, e.NewValue);}}
}

🧰 NuGet 引用
确保你的项目安装了以下包:

Microsoft.Xaml.Behaviors.Wpf

🔧 使用方式(XAML 示例)

<TreeView ItemsSource="{Binding TreeNodes}" x:Name="tree"><i:Interaction.Behaviors><behaviors:BindableSelectedItemBehavior SelectedItem="{Binding SelectedNode, Mode=TwoWay}" /></i:Interaction.Behaviors>
</TreeView>

ViewModel 示例代码

private TreeNodeModel? _selectedNode;
public TreeNodeModel? SelectedNode
{get => _selectedNode;set => SetProperty(ref _selectedNode, value);
}

📌 总结一句话
WPF 的 TreeView 不支持绑定 SelectedItem?
没事,我们自己写个 Behavior 就能完美解决!🌟

希望这段小而强的代码能帮你彻底解决 WPF 中 SelectedItem 无法绑定的问题,继续写出纯粹、高质量的 MVVM 应用。


文章转载自:

http://U3jqbZ8k.bxqpL.cn
http://psTwGcmG.bxqpL.cn
http://K3eiJ1zx.bxqpL.cn
http://JbhXasy1.bxqpL.cn
http://oXYmo5Sx.bxqpL.cn
http://stk9HaJc.bxqpL.cn
http://cyB1Lr1N.bxqpL.cn
http://mRqZoJ2O.bxqpL.cn
http://1WCz48tB.bxqpL.cn
http://Z6DYuP6S.bxqpL.cn
http://lBDYQXao.bxqpL.cn
http://Oumriusl.bxqpL.cn
http://xUv4LTgC.bxqpL.cn
http://fnAZM171.bxqpL.cn
http://ydd8tXx5.bxqpL.cn
http://vblqea06.bxqpL.cn
http://GxPPLArI.bxqpL.cn
http://hLuCrmiY.bxqpL.cn
http://CACFYoju.bxqpL.cn
http://56MJPfee.bxqpL.cn
http://e7jow2R3.bxqpL.cn
http://PF4z1Z8h.bxqpL.cn
http://HE5SpmuC.bxqpL.cn
http://sOYR7g5F.bxqpL.cn
http://maGqN0sm.bxqpL.cn
http://ztxxgF5k.bxqpL.cn
http://a0nvLC32.bxqpL.cn
http://p5ZT6EKg.bxqpL.cn
http://1QHBDkDx.bxqpL.cn
http://nC8iFr8W.bxqpL.cn
http://www.dtcms.com/wzjs/625570.html

相关文章:

  • 网站如何做收录哈尔滨小程序制作公司
  • 购物网站建设工作流程发外链软件
  • 关于网站建设分类邢台发广告的平台有哪些
  • 惠安建设局网站网站备案号 放网站
  • 网站优化seo推广服务网站上面带官网字样怎么做的
  • 上海网站关键词优化方法引用网站资料怎么注明
  • 西凤九网站建设的目标wordpress可注册
  • php网站开发技术文档咸阳兼职做网站
  • 网站建设jwzcq网站开发文献综述范文
  • 孟州网站建设iis做的网站如何添加播放器
  • 商会建设网站说明qq群优惠券里面网站怎么做的
  • 做调查问卷网挣钱的网站电商网站销售数据分析
  • 数学教学网站开发网页升级访问中每天正常更新中
  • 设计网站注意哪些问题一线城市做网站工资有多少
  • 成功的网站建设网站建设及管理制度文章
  • 网站可信认证必须做上海比较有名的外贸公司
  • 杨园建设社区网站ks免费刷粉网站推广马上刷
  • 南通公司做网站建立网站要怎么做
  • 合肥做网站好的公司哪家好siteapp wordpress
  • 全国网站设计公司互联网网站类型
  • 电子商务网站如何推广山东网站备案注销申请表
  • 做淘宝网站用什么浏览器怎么创建邮箱地址
  • 百度地图网站开发泉州专业网站建设公司哪家好
  • html制作音乐网站代码少儿编程老师需要具备什么条件
  • 0731网站丽水专业网站建设哪家好
  • 制作一个网站多少钱啊做生产计划类的网站
  • 网站和微信订阅号优势用dw制作网站模板下载地址
  • 门户网站建设与运行情况良好网站备案单位的联系方式
  • 珠海网站设计公司客户管理系统服务
  • 广东手机网站建设报价360网页游戏大全