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 自定义依赖属性相关推荐

  1. WCF 中序列化自定义依赖属性类

    众所周知.NetFramework中存在着两种依赖属性,他们也分别集成着不同但名称相同的依赖对象: System.Windows.DependencyProperty:System.Windows.D ...

  2. WPF的自定义控件 依赖属性,DependencyProperty 路由事件RoutedEvent

    起初,想添加TreeView的样式,在MouseOver时整行背景变色,但是我目前在XAML无法实现. 搜索了一下,有个方法在后台也要写代码. 参考:http://www.cnblogs.com/br ...

  3. WPF整理-为User Control添加依赖属性

    WPF整理-为User Control添加依赖属性 原文:WPF整理-为User Control添加依赖属性 依赖属性 ".NET properties are nothing more t ...

  4. WPF快速入门系列(2)——深入解析依赖属性

    一.引言 感觉最近都颓废了,好久没有学习写博文了,出于负罪感,今天强烈逼迫自己开始更新WPF系列.尽管最近看到一篇WPF技术是否老矣的文章,但是还是不能阻止我系统学习WPF.今天继续分享WPF中一个最 ...

  5. WPF学习笔记一 依赖属性及其数据绑定

    本文想通过由浅入深的讲解让读者比较深的理解依赖属性.  首先,我们回顾一下依赖属性的发展历史. 最初,人们提出面向对象编程时,并没有属性这个说法,当时叫做成员变量.一个对象由成员变量和成员函数组成,如 ...

  6. WPF基础到企业应用系列8——依赖属性之“风云再起”

    一. 摘要 首先圣殿骑士很高兴"WPF 基础到企业应用系列" 能得到大家的关注.支持和认可.看到很多朋友留言希望加快速度的问题,我会尽力的,对你们的热情关注也表示由衷的感谢.这段时 ...

  7. WPF的依赖属性和附加属性(用法解释较全)

    转:https://www.cnblogs.com/zhili/p/WPFDependencyProperty.html 一.引言 感觉最近都颓废了,好久没有学习写博文了,出于负罪感,今天强烈逼迫自己 ...

  8. WPF学习(5)依赖属性

    今天我们来学习WPF一个比较重要的概念:依赖属性.这里推荐大家看看周永恒大哥的文章,讲的确实很不错.我理解的没那么深入,只能发表一下自己的浅见.提到依赖属性,不得不说我们经常使用的传统的.net属性, ...

  9. 初步了解WPF依赖属性

    一 依赖属性 在WPF库实现中,依赖属性使用普通的C#属性进行了包装,使得我们可以通过和以前一样的方式来使用依赖属性.但必须明确,在WPF中我们大多数都在使用依赖属性,而不是使用属性.依赖属性重要性在 ...

最新文章

  1. 第k大的数python代码_【Python】【输出前m大的数】
  2. 计算机中英语GAI缩写,等等英语_英语中“等等”缩写成为etc吗要加一点吗全拼是什么谢谢大家_淘题吧...
  3. ARM汇编学习之寄存器 之PC
  4. 【jQuery插件】用jQuery Masonry快速构建一个pinterest网站布局(转)
  5. 腾讯下载的视频转换为MP4
  6. mybatis 做 insert操作的时候返回插入的那条数据的id
  7. ant的下载与安装——mybatis学习笔记之预备篇(一)
  8. php获取网页js中的json,从php获取json数据使用js读取显示到网页笔记
  9. 区分节点列表和HTML集合
  10. 用C语言实现猜单词的小游戏
  11. python通过身份证或出生日期获取年龄
  12. 用python读取Excel数据
  13. 《人月神话》经典摘录
  14. shader镜面反射(Reflection)
  15. C语言实现json文本解析
  16. [工业互联-1]:工业互联全局概述
  17. PPT保存pps演示文档时,在另一个电脑中字体显示不正常!(已解决)
  18. 豌豆荚工程师谈其新版应用搜索技术
  19. 【css】CSS层叠样式表二
  20. Python中的difflib模块(文本对比)

热门文章

  1. IDEA检出SVN项目时提示:Cannot load supportted format:Cannot run program svn
  2. SSM格式化导出报表时间的格式
  3. Navicat怎样同步两个数据库中的表
  4. jenkins配置邮箱服务器发送构建结果
  5. 数据结构——队列(queue)
  6. 已编辑好的mysql_如何修改一个已存在的数据库名称?
  7. unity中单位是米还是厘米_小学数学常用单位换算汇总,收藏起来方便孩子查阅...
  8. java8升级java11到底敢不敢?
  9. Centos7 下部署PPTP
  10. html _ 提取html片段内的纯文本