Я тоже был очень раздражен написанием какой-то безумной длинной связывающей фразы КАЖДЫЙ раз, когда я хотел привязать к свойству, поэтому я делал это больше года, прежде чем наткнулся на этот пост. 1004 *
Это в основном подклассы MarkupExtension
(то есть класс Binding
) абстрактного класса с именем BindingDecoratorBase
, который предоставляет все свойства, которые предоставляет класс Binding. Оттуда вы можете сделать что-то вроде этого:
public class SimpleBinding : BindingDecoratorBase
{
public SimpleBinding(string path) : this()
{
Path = new System.Windows.PropertyPath(path);
}
public SimpleBinding()
{
TargetNullValue = string.Empty;
UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
}
}
И тогда все, что вам нужно сделать в xaml, это включить ваше пространство имен вверху, а затем
для привязки к элементу управления сделайте что-то вроде этого:
<TextBox Text="{m:SimpleBinding Name}"></TextBox>
<TextBox Text="{m:SimpleBinding Street}"></TextBox>
Это проще, чем пытаться создавать подклассы для каждого элемента управления, который вы хотите написать меньше в обязательной фразе.