Подтвердить что ты не робот

Как связать свойство xaml со статической переменной в другом классе?

У меня есть этот xaml файл, в котором я пытаюсь привязать фона текстового блока к статической переменной в другом классе, как я могу это достичь?

Я знаю, что это может быть глупо, но я просто перешел из форм Win и немного потерялся.

вот что я имею в виду:

   <TextBlock Text="some text"
                             TextWrapping="WrapWithOverflow"
                             Foreground="{Binding Path=SomeVariable}" />
4b9b3361

Ответ 1

В первую очередь вы не можете привязываться к variable. Вы можете привязываться только к properties от XAML. Для привязки к статическому свойству вы можете сделать это (скажем, вы хотите привязать свойство Text TextBlock) -

<TextBlock Text="{Binding Source={x:Static local:YourClassName.PropertyName}}"/>

где local - это пространство имен, в котором находится ваш класс, который вам нужно объявить выше в файле xaml, например:

xmlns:local="clr-namespace:YourNameSpace"

Ответ 2

Вы не можете привязываться к статическому свойству (INotifyPropertyChanged имеет смысл только для экземпляров), поэтому этого должно быть достаточно...

{x:Static my:MyTestStaticClass.MyProperty}  

или, например,

<TextBox Text="{x:Static my:MyTestStaticClass.MyProperty}" Width="500" Height="100" />  

убедитесь, что вы включили namespace - то есть определите my в XAML, например xmlns:my="clr-namespace:MyNamespace"