Для поиска файлов, не заканчивающихся на «.tmp», мы используем следующее regex:
^(?!.*[.]tmp$).*$
. Протестировано с тегом Regex Tester дает следующий результат:
Когда вы создаете привязки, вы устанавливаете Source
свойства вашего объекта, а не самого объекта. Вы должны указать имя свойства в конструкторе Binding
, а затем установить источник в свой объект:
b1 = new Binding("DeviceConfigured");
b2 = new Binding("ProcessingData");
b1.Source = myADS;
b2.Source = myADS;
Кроме ответа bde вы также можете использовать метод расширения, который позволяет вам установить привязку непосредственно на FrameworkElement
public static void SetBinding(this FrameworkElement target, DependencyProperty property, TargetType source, Expression<Func<TargetType, PropertyType>> property_accessor)
{
var binding = new Binding(source.PropertyName(property_accessor));
binding.Source = source;
target.SetBinding(property, binding);
}
public static string PropertyName(this TargetType obj, Expression<Func> property_accessor)
{
return ((MemberExpression)property_accessor.Body).Member.Name;
}
Вместо ввода
BindingOperations.SetBinding(txt1, TextBlock.TextProperty, b1);
BindingOperations.SetBinding(txt2, TextBlock.TextProperty, b2);
вы можете использовать метод расширения SetBinding, который определен выше
txt1.SetBinding(TextBlock.TextProperty, myADS, x => x.DeviceConfigured);
txt2.SetBinding(TextBlock.TextProperty, myADS, x => x.ProcessingData);
Таким образом, вы избегаете передавать имя свойства как строку.