ES5 Object.keys
var a = { a: 1, b: 2, c: 3 };
Object.keys(a).map(function(key){ return a[key] });
// result: [1,2,3]
В дополнение к хорошему ответу Джо Уайта вы также можете создать класс, который наследуется от Binding и устанавливает необходимые значения свойств по умолчанию. Например:
public class TwoWayBinding : Binding
{
public TwoWayBinding()
{
Initialize();
}
public TwoWayBinding(string path)
: base(path)
{
Initialize();
}
private void Initialize()
{
this.Mode = BindingMode.TwoWay;
}
}
Используйте одну из перегрузок DependencyProperty.Register , которая принимает PropertyMetadata. Передайте экземпляр FrameworkPropertyMetadata и задайте его свойства.
public class Dog {
public static readonly DependencyProperty PedigreeNameProperty =
DependencyProperty.Register("PedigreeName", typeof(string), typeof(Dog),
new FrameworkPropertyMetadata() {
BindsTwoWayByDefault = true,
DefaultUpdateSourceTrigger = UpdateSourceTrigger.LostFocus
}
);
Я не вижу способа установить значения по умолчанию для NotifyOnValidationError, ValidatesOnDataErrors или ValidatesOnExceptions, но я недостаточно использовал это, чтобы быть уверенным что искать; они могут быть там.