Как связать свойство в одной сборке с другим свойством в другой сборке - PullRequest
0 голосов
/ 05 августа 2011

У меня есть класс в сборке "AssemblyX" со свойством "Комментарий".Я хочу связать AssemblyX.Comment с TextBlock.Text в другой сборке?

Я пытаюсь сделать это следующим образом, но это не работает.

<Window xmlns:cc="clr-namespace:SomeNamespace;assembly=AssemblyX">
<TextBlock Text={Binding cc:Comment}/>
...

Ответы [ 3 ]

5 голосов
/ 05 августа 2011

Обычно вы не привязываете к свойству класса, вы привязываете к свойству экземпляра класса.Таким образом, в вашем коде вы должны создать экземпляр:

SomeNamespace.SomeClass instance = new SomeClass();
instance.Comment = "bla";
this.DataContext = intstance;

И в вашем xaml вы связываете:

<TextBlock Text="{Binding Comment}"/>

В этом случае абсолютно не имеет значения, в какой сборке SomeClassобъявляется, если текущий проект ссылается на эту сборку.Также не имеет значения, как называется SomeClass.Все, что имеет значение, это то, что экземпляр, к которому вы привязываете, имеет свойство с именем Comment.

Если свойство вашего класса является статическим, и поэтому у вас нет экземпляра, вы можете привязать к статическому свойству, напримерэто:

<TextBlock Text="{Binding cc:SomeClass.Comment}"/> 
0 голосов
/ 04 мая 2016

Для привязки к статическому свойству класса (возможно, к статической команде) попробуйте это

<MenuItem Header="{x:Static SomeClass.SomeProperty}"/>

Код позади

public class SomeClass
{
    public static string SomePropety 
    { get { return "done"; } }
}
0 голосов
/ 05 августа 2011

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

посмотрите здесь возможно, это поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...