Вы можете использовать SetBinding()
для создания привязки при использовании parent (this) в качестве источника привязки.Явное указание параметра источника говорит Binding
, что нужно ссылаться на этот экземпляр как Source
.
//<Label Text="{Binding Text, Source={x:Reference this}}" ...
var label = new Label();
label.SetBinding(Label.TextProperty, new Binding(nameof(Text), source: this));
Теперь динамическая установка Style
из ресурсов не так проста.Когда мы используем расширение StaticResource
в XAML, необходимо пройтись по визуальному дереву, чтобы найти соответствующий ресурс (стиль).В коде позади вам нужно будет вручную определить точный словарь ресурсов, стиль которого определен в.
Таким образом, предполагая, что у вас есть 'LabelText', определенный в App.xaml - вы можете использовать следующий код:
//... Style="{StaticResource LabelText}" />
//if the style has been defined in the App resources
var resourceKey = "LabelText";
// resource-dictionary that has the style
var resources = Application.Current.Resources;
if (resources.TryGetValue(resourceKey, out object resource))
label.Style = resource as Style;
Если стиль определен в PointReductionModeTemplate.xaml (или ContentView
ресурсах), вы можете альтернативно использовать:
var resources = this.Resources;
if (resources.TryGetValue(resourceKey, out object resource))
label.Style = resource as Style;
И, наконец, добавить метку в сетку.
this.ABC.Children.Add(label);