WPF usercontrol 自定义依赖属性
1.依赖属性不同意一般属性,一般属性主要定义在对象中,而依赖属性是存在一个特殊的依赖属性表中。
2.当我们触发改变值时,需要通过SetValue这种方式进行触发。
UserControl1.xaml:
<UserControl x:Class="WpfApplication1.UserControl1"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:WpfApplication1"mc:Ignorable="d" Name="myUserControl"d:DesignHeight="300" d:DesignWidth="300"><Grid><TextBox Name="textBox" TextChanged="textBox_TextChanged"></TextBox></Grid> </UserControl>
UserControl1.xml.cs:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes;namespace WpfApplication1 {/// <summary>/// UserControl1.xaml 的交互逻辑/// </summary>public partial class UserControl1 : UserControl{public UserControl1(){InitializeComponent();}public static readonly DependencyProperty TextContentProperty;static UserControl1(){UserControl1.TextContentProperty =DependencyProperty.Register("TextContent",typeof(string), typeof(UserControl1));}public string TextContent{get{return (string)GetValue(UserControl1.TextContentProperty);}set{SetValue(UserControl1.TextContentProperty, value);}}private void textBox_TextChanged(object sender, TextChangedEventArgs e){TextBox box = (TextBox)sender;this.SetValue(TextContentProperty, box.Text);}} }
View Code
MainWindow.xaml:
<Window x:Class="WpfApplication1.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WpfApplication1"mc:Ignorable="d"Name="MainWindowName"Title="MainWindow" Height="350" Width="525"><Grid><Grid.RowDefinitions><RowDefinition></RowDefinition><RowDefinition></RowDefinition><RowDefinition></RowDefinition></Grid.RowDefinitions><TextBlock Name="tc" Grid.Row="0" Width="100" Height="30" Text="{Binding MyValue,ElementName=MainWindowName}"></TextBlock><local:UserControl1 x:Name="uc" Grid.Row="1" Width="50" Height="50" TextContent="{Binding MyValue,Mode=TwoWay,ElementName=MainWindowName}"></local:UserControl1></Grid> </Window>
MainWindow.xaml.cs:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes;namespace WpfApplication1 {/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window,INotifyPropertyChanged{public MainWindow(){InitializeComponent();this.DataContext = this;}private string myVar;public event PropertyChangedEventHandler PropertyChanged;protected void OnPropertyChanged(string name){PropertyChangedEventHandler handler = PropertyChanged;if (handler != null){handler(this, new PropertyChangedEventArgs(name));}}public string MyValue{get { return myVar; }set { myVar = value;OnPropertyChanged("MyValue");}}} }
View Code
转载于:https://www.cnblogs.com/xcong/p/6490402.html
WPF usercontrol 自定义依赖属性相关推荐
- WCF 中序列化自定义依赖属性类
众所周知.NetFramework中存在着两种依赖属性,他们也分别集成着不同但名称相同的依赖对象: System.Windows.DependencyProperty:System.Windows.D ...
- WPF的自定义控件 依赖属性,DependencyProperty 路由事件RoutedEvent
起初,想添加TreeView的样式,在MouseOver时整行背景变色,但是我目前在XAML无法实现. 搜索了一下,有个方法在后台也要写代码. 参考:http://www.cnblogs.com/br ...
- WPF整理-为User Control添加依赖属性
WPF整理-为User Control添加依赖属性 原文:WPF整理-为User Control添加依赖属性 依赖属性 ".NET properties are nothing more t ...
- WPF快速入门系列(2)——深入解析依赖属性
一.引言 感觉最近都颓废了,好久没有学习写博文了,出于负罪感,今天强烈逼迫自己开始更新WPF系列.尽管最近看到一篇WPF技术是否老矣的文章,但是还是不能阻止我系统学习WPF.今天继续分享WPF中一个最 ...
- WPF学习笔记一 依赖属性及其数据绑定
本文想通过由浅入深的讲解让读者比较深的理解依赖属性. 首先,我们回顾一下依赖属性的发展历史. 最初,人们提出面向对象编程时,并没有属性这个说法,当时叫做成员变量.一个对象由成员变量和成员函数组成,如 ...
- WPF基础到企业应用系列8——依赖属性之“风云再起”
一. 摘要 首先圣殿骑士很高兴"WPF 基础到企业应用系列" 能得到大家的关注.支持和认可.看到很多朋友留言希望加快速度的问题,我会尽力的,对你们的热情关注也表示由衷的感谢.这段时 ...
- WPF的依赖属性和附加属性(用法解释较全)
转:https://www.cnblogs.com/zhili/p/WPFDependencyProperty.html 一.引言 感觉最近都颓废了,好久没有学习写博文了,出于负罪感,今天强烈逼迫自己 ...
- WPF学习(5)依赖属性
今天我们来学习WPF一个比较重要的概念:依赖属性.这里推荐大家看看周永恒大哥的文章,讲的确实很不错.我理解的没那么深入,只能发表一下自己的浅见.提到依赖属性,不得不说我们经常使用的传统的.net属性, ...
- 初步了解WPF依赖属性
一 依赖属性 在WPF库实现中,依赖属性使用普通的C#属性进行了包装,使得我们可以通过和以前一样的方式来使用依赖属性.但必须明确,在WPF中我们大多数都在使用依赖属性,而不是使用属性.依赖属性重要性在 ...
最新文章
- 第k大的数python代码_【Python】【输出前m大的数】
- 计算机中英语GAI缩写,等等英语_英语中“等等”缩写成为etc吗要加一点吗全拼是什么谢谢大家_淘题吧...
- ARM汇编学习之寄存器 之PC
- 【jQuery插件】用jQuery Masonry快速构建一个pinterest网站布局(转)
- 腾讯下载的视频转换为MP4
- mybatis 做 insert操作的时候返回插入的那条数据的id
- ant的下载与安装——mybatis学习笔记之预备篇(一)
- php获取网页js中的json,从php获取json数据使用js读取显示到网页笔记
- 区分节点列表和HTML集合
- 用C语言实现猜单词的小游戏
- python通过身份证或出生日期获取年龄
- 用python读取Excel数据
- 《人月神话》经典摘录
- shader镜面反射(Reflection)
- C语言实现json文本解析
- [工业互联-1]:工业互联全局概述
- PPT保存pps演示文档时,在另一个电脑中字体显示不正常!(已解决)
- 豌豆荚工程师谈其新版应用搜索技术
- 【css】CSS层叠样式表二
- Python中的difflib模块(文本对比)
热门文章
- IDEA检出SVN项目时提示:Cannot load supportted format:Cannot run program svn
- SSM格式化导出报表时间的格式
- Navicat怎样同步两个数据库中的表
- jenkins配置邮箱服务器发送构建结果
- 数据结构——队列(queue)
- 已编辑好的mysql_如何修改一个已存在的数据库名称?
- unity中单位是米还是厘米_小学数学常用单位换算汇总,收藏起来方便孩子查阅...
- java8升级java11到底敢不敢?
- Centos7 下部署PPTP
- html _ 提取html片段内的纯文本