WPF 自定义控件依赖属性绑定

自定义一个简单控件,添加依赖属性,想在xmal中绑定设置依赖属性的值,绑定不起作用求问是怎么回事?

 public partial class LabelEx : UserControl
    {
        public LabelEx()
        {
            InitializeComponent();
            Data = "000";
            this.DataContext = this;
        }


        public static readonly DependencyProperty DataProperty = DependencyProperty.Register(
                    "Data", typeof(string), typeof(LabelEx), new FrameworkPropertyMetadata(""));

        public string Data
        {
            get { return (string)GetValue(DataProperty);}
            set {  SetValue(DataProperty, value);}
        }


        public string Title
        {
            get { return title.Text; }
            set { title.Text = value; }
        }
    }

如果将控件属性绑定到Data上能正常工作,如下代码:

 <src:LabelEx Data="{Binding Text, ElementName=txt}"></src:LabelEx>

但是我想绑定到对象属性上就不能正常工作,绑定不起作用,前台xmal代码:

 <src:LabelEx Data="{Binding XName}"></src:LabelEx>

后台CS代码

```public partial class Window1 : Window, INotifyPropertyChanged
{
private float? age;

    public float? Age
    {
        get { return age; }
        set { age = value; NotifyPropertyChanged("Age"); }
    }

    private float? score;

    public float? Score
    {
        get { return score; }
        set { score = value; NotifyPropertyChanged("Score"); }
    }

    private string xname;
    public string XName
    {
        get { return xname; }
        set { xname = value; NotifyPropertyChanged("XName"); }
    }

    public Window1()
    {
        InitializeComponent();
        this.DataContext = this;
        xname = "1234";
        age = 60;
        score = 380;
    }







1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
WPF依赖属性绑定问题
rn[code=csharp]rn public static readonly DependencyProperty MinValueProperty = DependencyProperty.Register("MinValue", typeof(double), typeof(MyControl), new PropertyMetadata(0.0));rnrn public double MinValuern rn get return (double)GetValue(MinValueProperty); rn setrn rn SetValue(MinValueProperty, value);rn rn rnrn[/code]rnrn[code=html]rn rnrn[/code]rnrn自定义依赖属性让一个TextBox的Text属性进行绑定,然后更改Text属性;rnrn自定义依赖属性的Set方法为什么不执行? 怎么能让Set执行?rnrn
wpf中自定义控件 集合类型的依赖属性
就是在wpf中自定义一个控件,在这个控件中含有一个listbox的控件,然后再引用这个控件的时候,要想listbox中添加东西,但是如果只是定义属性时候,定义成object的属性的话,只能添加一个,现在要定义成list类型的依赖属性,所以,这个地方不知道,怎么写,现在求助各位!
WPF自定义控件 自定义依赖属性Demo
VB.NET做的一个WPF的Demo,做了个控件。像是Windows图标一样.图片加文字,移动到图片上,图片会放大。这个demo也说明了如何建立一个自定义的属性,并把UserControl中的控件属性绑定到自己定义的属性中。
WPF 依赖属性依赖属性依赖属性依赖属性
wpf实现数据绑定Binding实现数据绑定、依赖属性
高手进来,WPF自定义控件中依赖属性绑定UserControl
我有一个自定义控件Class MyUserControl,rn里面有一个属性MyPage,类型为UserControl。为了实现绑定,我把它定义成了依赖属性。rnpublic class MyControlrnrn public static readonly DependencyProperty MyPageProperty = DependencyProperty.Register(rn "MyPage",rn typeof(UserControl),rn typeof(MyControl),rn new PropertyMetadata(new PropertyChangedCallback(MyPageChangedCallback))rn );rnrnrn public UserControl MyPagern rn getrn rn rn return GetValue(MyPageProperty) as UserControl;rn rn setrn rn if (MyPage!= value)rn rn SetValue(MyPageProperty, value);rn //rn rn rn rn //省略其它代码rnrn在xaml中,我想这样使用。我用的mvvm模式,View在ViewModel中定义了,为UserControl类型。rnrn为什么不显示呢?rn求高手帮忙。
(WPF)依赖属性
属性触发器:
WPF 依赖属性
WPF 的ListBox 可以绑定SelectedItem但是不可以绑定SelectedItems不能绑定,这就有点烦了。 所以可以自定义一个依赖属性来绑定: 首先定义个TListBox类来代替ListBox     public class TListBox:ListBox     {         public static readonly DependencyProperty
WPF的依赖属性
概述:依赖属性和CRL属性类似,提供一个实例级私有字段的访问封装,通过GetValue和SetValue访问器实现属性的读写操作,最重要一个特点是属性值依赖于一个或者多个数据源,提供这些数据源的方式也可以不同,所以依赖属性就是一种自己可以没有值,并且可以通过绑定从其他数据源获取值。 下面我分别用传统方式和依赖属性方式来实现当鼠标移动到圆上时,给其加上一个大小为40的红色轮廓,离开后变回绿色这一效果...
WPF 自定义控件依赖属性怎么实时变化?
WPF自定义控件依赖属性怎么实时变化。
WPF依赖属性
本文是出自:http://www.cnblogs.com/xiongpq/archive/2010/06/29/1767905.html 感觉很好,所以收藏。 概述: Windows Presentation Foundation (WPF) 提供了一组服务,这些服务可用于扩展公共语言运行时 (CLR) 属性的功能。这些服务通常统称为 WPF 属性系统。由 WPF 属性系统支持的属性称为依赖...
wpf 自定义控件绑定问题
请教各位,我自定义了一个控件,如下,rnxaml:rnrn rn rn rnrn代码:rnusing System;rnusing System.Collections.Generic;rnusing System.Linq;rnusing System.Text;rnusing System.Windows;rnusing System.Windows.Controls;rnusing System.Windows.Data;rnusing System.Windows.Documents;rnusing System.Windows.Input;rnusing System.Windows.Media;rnusing System.Windows.Media.Imaging;rnusing System.Windows.Navigation;rnusing System.Windows.Shapes;rnusing System.ComponentModel;rnrnnamespace WpfApplication1rnrn /// rn /// WebB.xaml 的交互逻辑rn /// rn public partial class WebB : UserControlrn rn public WebB()rn rn InitializeComponent();rnrnrn rnrnrn public static readonly DependencyProperty ConProperty = DependencyProperty.Register("Con",typeof(string),typeof(WebB), new PropertyMetadata("1234")) ;rn rn public string Conrn rn set rn SetValue(ConProperty,value) ;rnrnrn wb.NavigateToString(value) ;rn rn getrn return (string)GetValue(ConProperty);rn rn rn rn rnrnrn主窗体:rnxaml : rnrn rn rn rn rn rn rn rnrn代码:rnusing System;rnusing System.Collections.Generic;rnusing System.Linq;rnusing System.Text;rnusing System.Windows;rnusing System.Windows.Controls;rnusing System.Windows.Data;rnusing System.Windows.Documents;rnusing System.Windows.Input;rnusing System.Windows.Media;rnusing System.Windows.Media.Imaging;rnusing System.Windows.Shapes;rnusing System.ComponentModel;rnrnrnnamespace WpfApplication1rnrn /// rn /// Window2.xaml 的交互逻辑rn /// rn public partial class Window2 : Window,INotifyPropertyChangedrn rn private string html = string.Empty;rnrn public string Htmlrn rn get return html; rn rn set html = value;rn OnPropertyChanged("Html");rn rn rnrnrn public event PropertyChangedEventHandler PropertyChanged;rn public void OnPropertyChanged(string propertyName)rn rn if (PropertyChanged != null)rn rn PropertyChanged(this,new PropertyChangedEventArgs(propertyName)) ;rn rn rnrn public Window2()rn rn InitializeComponent();rnrn Html = "123312";rnrn rn rnrnrn为什么Html的值无法传到控件中,不用wb.Con = "123312"; 的方式
WPF基础知识绑定、样式、依赖属性教程
这个是我们老师讲WPF用的PPT,深入浅出,适合初学者对wpf有一个整天的了解。
自己定义一个依赖属性 Wpf
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections.ObjectModel; using System.Windows;namespace MysherOCRReader { class GetPhotoInfoRegion
wpf 控件的依赖属性和数据绑定
今天我遇到一个问题就是想动态的改变绑定的源,但是却提示绑定里面不能有绑定,我顿时无语了,刚接触到wpf怎么办呢,我真的不知道了,后来为了响应事件的操作,我只好解绑定改变path的值后再绑定。之后也能调转换器达到想要的结果 ,可是这样却出现了另外一个问题就是:重新绑定listbox的数据源的话会让不能正确的响应达到我要的结果。 这个时候就想到vector的依赖属性, 我本来认为的是依赖属性就是一个
WPF自定义控件中,自定义属性的绑定。
我想在WPF中做一个自定义控件,其中有一个自定义属性HelpText,在主界面用此控件时,指定HelpText的值,然后自定义控件绑定此值,显示出来。rn自定义控件:[code=csharp]public class TextBoxEx : TextBoxrn rn static TextBoxEx()rn rn DefaultStyleKeyProperty.OverrideMetadata(typeof(TextBoxEx), new FrameworkPropertyMetadata(typeof(TextBoxEx)));rn HelpTextProperty = DependencyProperty.Register("HelpText", typeof(string), typeof(TextBoxEx),rn new FrameworkPropertyMetadata("请您输入..", new PropertyChangedCallback(OnHelpTextChanged)));rn rn public static DependencyProperty HelpTextProperty;rn public string HelpTextrn rn get return (string)GetValue(HelpTextProperty); rn set SetValue(HelpTextProperty, value); rn rn private static void OnHelpTextChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)rn rnrn rn [/code]rn下面是自定义控件的xaml代码,我用了好几种,怎么也绑定不了从使用控件的主界面发回来的HelpText属性:rn1.rn2.rn3. rn经测试如果把上面绑定化为固定值,正常运行,隐藏代码中回调函数可以证明HelpText传参无错误。rn请问如何绑定??
wpf依赖属性详解
依赖属性详解,有源码 //传入ownerType增加Owner public DependencyProperty AddOwner(Type ownerType) { return AddOwner (ownerType, null); } //增加所有者,根据ownerType和typeMetadata public DependencyProperty AddOwner(Type ownerType, PropertyMetadata typeMetadata) { if (typeMetadata == null) typeMetadata = new PropertyMetadata (); OverrideMetadata (ownerType, typeMetadata); // MS seems to always return the same DependencyProperty return this; } //获取元数据,依据forType public PropertyMetadata GetMetadata(Type forType) { if (metadataByType.ContainsKey (forType)) return metadataByType[forType]; return null; } //获取元数据,依据该依赖属性 public PropertyMetadata GetMetadata(DependencyObject d) { if (metadataByType.ContainsKey (d.GetType())) return metadataByType[d.GetType()]; return null; }
WPF 依赖属性使用列子
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; usin...
WPF自定义依赖属性
MVVM下经常需要用到绑定数据,比如文本框显示,下拉框数据绑定。但是有些情况下微软提供的属性不能满足自己要求,那么就需要自己去定义一些依赖属性。比如下拉框多选的时候,单选可以使用SelectedItem绑定,多选怎么办?多选就需要自己来定义一个依赖属性来。具体怎么定义依赖属性,代码如下:public string SelectedItems { get { ...
WPF依赖属性问题
rn我在WPF设置了个double类型的依赖属性,然后XAML中设置UpdateSourceTrigger=PropertyChanged,rnrn程序运行后给这个依赖属性赋值,发现没法输入小数点?rnrn怎么解决,求大神帮忙。
WPF的依赖属性的优先级演示
演示了WPF占用依赖属性的使用,以及优先级: 属性系统强制转换>动画>本地值>触发器>Setter>继承>依赖属性元数据的默认值 环境:.Net 4.0 framework
WPF学习(4)-依赖属性
什么是依赖属性,简单地说就是自己本身没有值,而依赖于别人的值,这样的属性叫做依赖属性。为什么需要依赖属性呢?最初的目的是为了解决继承膨胀,比如在WinForm的时候,我们new一个bitmap,首先我们看到bitmap继承自Image这个类,大致看一下,我们发现image会有很多属性,如下图所示,但是一般情况下我们只用到了很少的部分,但是因为Image是bitmap的父类,那么必须继...
WPF依赖属性的注册问题
[code=VB.NET]Public TextProperty As DependencyProperty = DependencyProperty.Register("Text", GetType(String), GetType(FxButton),rn New PropertyMetadata("", New PropertyChangedCallback(AddressOf TextChangeCallback)))rnrn Public Property Text As Stringrn Getrn Return CType(GetValue(TextProperty), String)rn End Getrn Set(value As String)rn SetValue(TextProperty, value) rn End Setrn End Property[/code]rnrn我使用以上代码注册了依赖属性,但当我在别处添加此用户控件时,如果只有一个则正常,添加第二个的时候会出现错误提示rnrnText已经由XXX(UserControl名称)注册,无法创建XXX的实例。rnrn rnrn我哪里弄错了?如何解决这个问题?
WPF学习笔记——理解依赖属性
在使用WPF的时候,总会有一个疑问,依赖属性跟普通的类属性有什么区别,微软要在WPF引入它想要解决什么问题?如果不解除这个疑惑,在编程的时候心里总会不踏实。因此我在网上找了一些资料,终于弄懂了它的由来和机制,特意和大家分享,如有不足,请各位指正!
WPF 依赖属性详解【转】
我在上传些代码的时候,有时候会遇到&amp;amp;ldquo;git did not exit cleanly (exit code 128)&amp;amp;rdquo;错误。通常都是网络原因。
wpf 依赖属性内部机制
深入讲解binding 的目标端 什么对象才能作为binding 的target 以及binding 将把数据送往何处
WPF 依赖属性多线程赋值
WPF 依赖属性多线程赋值问题描述解决方法代码示例 问题描述 当依赖属性被页面绑定后,子线程对依赖属性赋值时会出现错误:调用线程无法访问此对象,因为另一个线程拥有该对象。 解决方法 使用CheckAccess()判断调用线程是否可以访问此对象,如果不可以,使用Dispatcher的invoke方法。 代码示例 Action act =()=&amp;amp;gt;{ m_ComputerInfo.MacId = ...
依赖属性实现绑定
控件定义依赖属性 自定义依赖属性 自定义的依赖属性实现绑定
WPF 自定义控件中自定义依赖属性 Binding 失效的问题
原先控件的依赖属性写法如下 public class MyControl : Control { public double MyWidth { get =&gt; (double)GetValue(MyWidthProperty); set =&gt; SetValue(MyWidthProperty, ...
wpf 的依赖属性和附加属性的区别
几种应用依赖属性的场景: 1. 希望可在样式中设置属性。 2. 希望属性支持数据绑定。 3. 希望从元素树中的父元素自动继承属性值。   几种应用附加属性的场景: 1. 希望可在样式中设置属性。 2. 希望属性支持数据绑定。 3. 希望从元素树中的父元素自动继承属性值。 4.希望可以在独立的类中定义该附加属性,然后公共使用,因为一般定义依赖属性会在对应的类的后台代...
WPF 依赖属性 实时显示的问题
我先说下我的做法:rn1、DLL封装了一个自定义的RadioButton扩展rn2、RadioButton 初始化时加载 DLL内部的一个RadioButton样式。rn3、主程序XAML调用这个自定义的RadioButton并设置其依赖属性rnrn问题来了:如果在RadioButton Loaded之后去设置依赖属性界面能正常显示rn但是在初始化时设置就不能显示。我要的结果就像WPF 界面设置依赖属性立马就能看到,而不是每次都得重新编译才在界面上显示。rnrnrn有没有什么办法来实现这个问题、怎么改造。rn看代码:rnrn[code=csharp]rnpublic class CheckBox360 : CheckBoxrn rn public static readonly DependencyProperty ContentOnProperty = DependencyProperty.Register("ContentOn", typeof(string), typeof(CheckBox360), new PropertyMetadata(string.Empty));rn public static readonly DependencyProperty ContentOffProperty = DependencyProperty.Register("ContentOff", typeof(string), typeof(CheckBox360), new PropertyMetadata(string.Empty));rn public static readonly DependencyProperty ButtonBackgroundProperty = DependencyProperty.Register("ButtonBackground", typeof(Brush), typeof(CheckBox360), new PropertyMetadata(Brushes.White));rn public static readonly DependencyProperty ButtonCenterBorderProperty = DependencyProperty.Register("ButtonCenterBorder", typeof(Brush), typeof(CheckBox360), new PropertyMetadata(Brushes.Gray));rnrn /// rn /// On 内容rn /// rn public string ContentOnrn rn get return (string)GetValue(ContentOnProperty); rn set SetValue(ContentOnProperty, value); rn rnrn /// rn /// off 内容rn /// rn public string ContentOffrn rn get return (string)GetValue(ContentOffProperty); rn set SetValue(ContentOffProperty, value); rn rnrn /// rn /// 圆饼按钮颜色rn /// rn public Brush ButtonBackgroundrn rn get return (Brush)GetValue(ButtonBackgroundProperty); rn set SetValue(ButtonBackgroundProperty, value); rn rnrn /// rn /// 圆饼按钮中间Border颜色rn /// rn public Brush ButtonCenterBorderrn rn get return (Brush)GetValue(ButtonCenterBorderProperty); rn set SetValue(ButtonCenterBorderProperty, value); rn rn rn public CheckBox360()rn rn Loaded += (sender, args) =>rn rn tryrn rn this.Resources.Source = new Uri("DialogEx;Component/Controls/CheckBox360.xaml", UriKind.RelativeOrAbsolute);rn rn catchrn rn throw new Exception("未找到:DialogEx;Component/Controls/CheckBox360.xaml");rn rn this.Resources["BtnBack"] = (Color)ColorConverter.ConvertFromString(ButtonBackground.ToString());rn this.Resources["BtnCenterBorderBack"] = (Color)ColorConverter.ConvertFromString(ButtonCenterBorder.ToString()); rn this.Resources["CheckBoxOnText"] = ContentOn;rn this.Resources["CheckBoxOFFText"] = ContentOff;rn this.Style = this.Resources["CheckBoxStyle"] as Style;rn ;rn rn rn[/code]
WPF源码:只读依赖属性.rar
WPF源码:只读依赖属性.rar WPF源码:只读依赖属性.rar
WPF 主动触发依赖属性的 PropertyChanged
一、需求背景 需要显示 ViewModel 中的 Message/DpMessage,显示内容根据其某些属性来确定。代码结构抽象如下: // Model public class Message : INotifyPropertyChanged { public string MSG; public string Stack; } // ViewModel public ...
WPF入门教程(八)--依赖属性(4)
我们通过下面的这幅图,简单介绍一下WPF属性系统对依赖属性操作的基本步骤:   借用一个常见的图例,介绍一下WPF属性系统对依赖属性操作的基本步骤: 第一步,确定Base Value,对同一个属性的赋值可能发生在很多地方。比如控件的背景(Background),可能在Style或者控件的构造函数中都对它进行了赋值,这个Base Value就要确定这些值中优先级最高的值,把它作为Base...
WPF/SL 中得依赖属性问题
DependencyProperty 注册依赖属性rn跟 rn使用 rnpublic int Arnrnget;set;rnrn有啥不同啊?rn 求大牛啊
有关WPF依赖属性验证的问题
自己写了一个小Demo,遇到了一些问题.搞不明白,希望能在这里得到解答.rn这是我的demo结构rn[img=https://img-bbs.csdn.net/upload/201403/08/1394283129_689807.jpg][/img]rnrn这是依赖属性的全部实现:[code=csharp] public string MyObserverrn rn get return (string)GetValue(MyObserverProperty); rn set SetValue(MyObserverProperty, value); rn rnrn static FrameworkPropertyMetadata myPropertyMetadata = new FrameworkPropertyMetadata("default hello", FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, PropertyChangedCallback, CoerceValueCallback, false, UpdateSourceTrigger.PropertyChanged);rnrn private static object CoerceValueCallback(DependencyObject d, object baseValue)rn rn MessageBox.Show("I am forced to do this. and the baseValue is :" + baseValue.ToString());rn return baseValue+"~~~";rn rnrn private static void PropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)rn rn MessageBox.Show("I am going to tell you the propertyChanged \r\ne.OldValue is: "+e.OldValue+"\r\ne.NewValue is: "+e.NewValue);rn rnrn // Using a DependencyProperty as the backing store for MyObserver. This enables animation, styling, binding, etc...rn public static readonly DependencyProperty MyObserverProperty =rn DependencyProperty.Register("MyObserver", typeof(string), typeof(MyObserverControl), myPropertyMetadata,ValidateValueCallback);rnrn private static bool ValidateValueCallback(object value)rn rn string input = value as string;rn foreach (char item in input)rn rn if (item=='A')rn rn MessageBox.Show("I am going to validate your inputs not containing letter \"A\". and now i am returning False");rn return false;rn rn rn MessageBox.Show("I am going to validate your inputs not containing letter \"A\". and now i am returning True");rn return true;rn rn[/code]rnrn前台绑定的代码rn[code=html] rn [/code]rnrnrn问题就来了,如果我去掉ValidateValueCallback() 一切正常rn[img=https://img-bbs.csdn.net/upload/201403/08/1394283374_652972.jpg][/img]rn.当改动值时,能够正常跳出Messbox通知.rn可是如果我在Register中添加了ValidateValueCallback(),绑定就失效了,改动textbox也不会触发CoerceValueCallback()了.只有初始化的时候会跳两个rn MessageBox.Show("I am going to validate your inputs not containing letter \"A\". and now i am returning True");rnrnrn请问是什么原因?添加了ValidateValueCallback()和不添加的区别在哪里?希望能给个解决办法!谢谢了~
WPF 依赖属性Binding更改通知
[img=https://img-bbs.csdn.net/upload/201603/24/1458815008_41190.png][/img]
WPF依赖属性和附加属性学习
依赖属性以及附加属性 依赖属性(DependencyProperty) 1.概念 依赖属性是一种可以自己没有值,并能通过使用Binding从数据源获得值的属性(通俗的讲,就是依赖在别的属性上)。 依赖属性是为了解决普通属性因继承而带来的对象膨胀。 例如Button的继承 Button-&amp;gt;ButtonBase-&amp;gt;ContentControl-&amp;gt;Control-&amp;gt;F...
WPF依赖属性DependencyProperty范例Demo
WPF 依赖属性 DependencyProperty C# WPF 依赖属性 DependencyProperty C# WPF 依赖属性 DependencyProperty C# WPF 依赖属性 DependencyProperty C#
WPF 依赖属性和附加属性区别
WPF 依赖属性和附加属性区别
RadGridView怎么实现依赖属性绑定
大婶们好,我使用wpf自带的GridView使用[code=csharp] [/code]是没有问题的,但是我使用telerik的[code=csharp] [/code]rn使用的dataMemberBinding 怎么都不行啊..请帮忙介绍下rnrn[code=csharp] [/code]rn[code=csharp][/code]rn[code=csharp] public string ColumnCodern rn getrn return columnCode; rn setrn rn columnCode = value;rn RaisePropertyChanged(new PropertyChangedEventArgs("ColumnCode"));rn rn [/code]rn[code=csharp] public partial class TD_Columns : RelNotifyProperty[/code]rn[code=csharp] public class RelNotifyProperty : INotifyPropertyChangedrn rn public event PropertyChangedEventHandler PropertyChanged;rn public void RaisePropertyChanged(PropertyChangedEventArgs e)rn rn if (PropertyChanged != null)rn rn PropertyChanged(this, e);rn rn [/code]
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池