c # wpf публичный статический контроль - PullRequest
0 голосов
/ 29 декабря 2011

В коде я создаю:

public static Button button1 = new Button();

и добавьте его к Canvas , и я могу получить доступ к Button в любом месте любого класса в моем коде, но я не могу понять, как это сделать в XAML .

По сути, я хочу получить доступ к своим элементам управления в любом классе, и я могу это сделать, если я создаю их в коде, но не в XAML .

Есть ли решение?

Ответы [ 3 ]

1 голос
/ 29 декабря 2011

со следующим классом:

public class TestClass
{
    public static System.Windows.Controls.Button GlobalButton {get; set;}

    static TestClass()
    {
        GlobalButton = new System.Windows.Controls.Button();
        GlobalButton.Content = "Button1";
    }
}

Вы можете использовать следующие XAML :

<Border Child="{x:Static MemberType=local:TestClass, Member=GlobalButton}" />

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

0 голосов
/ 29 декабря 2011

Если вам нужно сослаться на объект, объявленный в XAML из любого места, вы можете не проверять этот интерфейс: http://msdn.microsoft.com/en-us/library/system.xaml.ixamlnameresolver.aspx

При этом вы сможете разрешить любой объект в данной области имен XAML по x: name

0 голосов
/ 29 декабря 2011

Вам просто нужно дать элементу управления имя x: в XAML и получить доступ к нему по этому имени в коде. Если вы хотите получить к ним доступ из ЛЮБОГО класса, то я не уверен, что вы можете сделать это в XAML, поскольку XAML более всего связан с одним кодом позади. Если вам нужны другие классы для доступа к элементу управления, вам нужно будет представить его как свойство в коде позади. Но зачем вам нужен элемент управления пользовательского интерфейса из другого класса?

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