2011-08-05 14 views
0

プロパティ "Comment"を持つアセンブリ "AssemblyX"のクラスがあります。 AssemblyX.Commentを別のアセンブリのTextBlock.Textにバインドしたいですか?あるアセンブリのプロパティを別のアセンブリの別のプロパティにバインドする方法

私は次のようにしていますが、動作していません。

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

の後ろにこの

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

コードを試してみてくださいクラスの静的プロパティにバインドすることができます:*私はSomeClass.CommentをAssemblyXにバインドしたい* – bitbonk

答えて

5

あなたは通常、クラスのプロパティにバインドしていない、あなたはクラスのインスタンスのプロパティにバインドします。だからあなたの分離コードでインスタンスを作成したい:

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

それは働いた。ありがとう – John

+0

それは華麗でした。私はこの答えに感謝します。 – AgentFire

0

は、あなたが作成する必要がありますあなたのクラスのインスタンス。プロパティにバインドすることができます。

hereは、多分それはあなたが

0

(多分静的コマンド)あなたはおそらく意味

public class SomeClass 
{ 
    public static string SomePropety 
    { get { return "done"; } } 
} 
関連する問題