我有一個帶有屬性「Comment」的程序集「AssemblyX」中的類。我想在另一個程序集中將AssemblyX.Comment綁定到TextBlock.Text?如何將一個程序集中的屬性綁定到另一個程序集中的另一個屬性
我試圖用下面的方法來做,但它不工作。
<Window xmlns:cc="clr-namespace:SomeNamespace;assembly=AssemblyX">
<TextBlock Text={Binding cc:Comment}/>
...
我有一個帶有屬性「Comment」的程序集「AssemblyX」中的類。我想在另一個程序集中將AssemblyX.Comment綁定到TextBlock.Text?如何將一個程序集中的屬性綁定到另一個程序集中的另一個屬性
我試圖用下面的方法來做,但它不工作。
<Window xmlns:cc="clr-namespace:SomeNamespace;assembly=AssemblyX">
<TextBlock Text={Binding cc:Comment}/>
...
你通常不綁定到一個類的屬性,綁定到一個類的實例的的屬性。因此,在您的代碼隱藏你創建一個實例:
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}"/>
如果你的類是不固定的,你必須創建你的班級的一個實例。那麼你可以綁定到一個屬性。
看here也許它可以幫助你
綁定到一個類的靜態屬性(static命令也許)試試這個
<MenuItem Header="{x:Static SomeClass.SomeProperty}"/>
代碼背後
public class SomeClass
{
public static string SomePropety
{ get { return "done"; } }
}
你大概的意思是:*我想在AssemblyX * – bitbonk