、私が作成します。C#のコードで
public static Button button1 = new Button();
とキャンバスに追加して、私は自分のコードに任意のクラスでボタンどこでもアクセスすることができますが、私はできますXAMLでこれを行う方法を理解していない。
基本的にはどのクラスのコントロールにもアクセスしたいのですが、コードで作成するとできますが、XAMLでは作成できません。
解決策はありますか?
、私が作成します。C#のコードで
public static Button button1 = new Button();
とキャンバスに追加して、私は自分のコードに任意のクラスでボタンどこでもアクセスすることができますが、私はできますXAMLでこれを行う方法を理解していない。
基本的にはどのクラスのコントロールにもアクセスしたいのですが、コードで作成するとできますが、XAMLでは作成できません。
解決策はありますか?
あなただけのコントロールにXを与えることがあります:背後にあるコードでその名前のXAMLでの名前とアクセスを。 ANYクラスからそれらにアクセスしたい場合は、XAMLが単なるコードの後ろに関連付けられているだけであるため、XAMLでこれを実行できるかどうかはわかりません。コントロールにアクセスするために他のクラスが必要な場合は、そのコードをコードのプロパティとして公開する必要があります。しかし、なぜ別のクラスのUIコントロールにアクセスする必要がありますか?
次のクラスでは私はちょうど膨大な量のコードを持っており、私はそれをすべて別々のクラスで編成しておきたいと思います。 – marseilles84
または実際に別のファイル。 – marseilles84
私はこれに似た状況があります。私が望むのは、アプリケーションの状態や例外を出力するために使われたグローバルコントロールを持つことです。 – zionpi
:私は非常には、このメソッドを使用して行うための別の方法を見つけていないお勧めします
<Border Child="{x:Static MemberType=local:TestClass, Member=GlobalButton}" />
しかし、:XAML次を使用でき
public class TestClass
{
public static System.Windows.Controls.Button GlobalButton {get; set;}
static TestClass()
{
GlobalButton = new System.Windows.Controls.Button();
GlobalButton.Content = "Button1";
}
}
あなたがしようとしていることは何でも。
あなたはどこからでもXAMLで宣言されたオブジェクトを参照する必要がある場合は、このインターフェイスをチェックアウトするwan't場合があります。これによりhttp://msdn.microsoft.com/en-us/library/system.xaml.ixamlnameresolver.aspx
あなたがxで与えられたのXAML名前スコープ内の任意のオブジェクトを解決することができるはずです:名前
あなたはどこからでもアクセス制御を必要とする....とWPFでなぜ
? – Tigran
パブリック静的コントロールプロパティを使用しないでください。 – Bas
組織なので、Button(および他の多くのコントロール)を外部クラスのメソッドのパラメータとして渡す必要はありません。 – marseilles84