DependencyProperty: IDE快捷键propdp
<TextBox x:Name="textBox1"/>
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
namespace WpfApplication8
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
MyClass myClass = new MyClass() { My = "123123" };
textBox1.SetBinding(TextBox.TextProperty, new Binding() { Source = myClass, Path = new PropertyPath(".My") });
}
}
public class MyClass : DependencyObject
{
public static readonly DependencyProperty MyProperty = DependencyProperty.Register("My", typeof(string), typeof(MyClass));
public string My
{
get { return this.GetValue(MyProperty).ToString(); }
set { this.SetValue(MyProperty, value); }
}
}
}
AttachedProperty IDE快捷键propa
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
MyClass2 mc2 = new MyClass2();
MyClass1.SetMyNameProperty(mc2, "hehe");
string str = MyClass1.GetMyNameProperty(mc2);
}
}
public class MyClass1 : DependencyObject
{
public static string GetMyNameProperty(DependencyObject obj)
{
return (string)obj.GetValue(MyNameProperty);
}
public static void SetMyNameProperty(DependencyObject obj, string value)
{
obj.SetValue(MyNameProperty, value);
}
// Using a DependencyProperty as the backing store for MyNameProperty. This enables animation, styling, binding, etc...
public static readonly DependencyProperty MyNameProperty =
DependencyProperty.RegisterAttached("MyName", typeof(string), typeof(MyClass1), new UIPropertyMetadata(string.Empty));
}
public class MyClass2 : DependencyObject
{ }