WPF TextBlock Binding

309
01 ноября 2017, 00:48

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

Есть окно, в котором есть класс, создаваемый в конструкторе.

public class mainWindow : Window
{
   private readonly Class1 _cls1 = new Class1();
   public Class1 cls1
   {
        get
        {
             return _cls1;
        }
   }
}

Class1 - это наследник от BaseClass

public class Class1 : BaseClass
{
}

BaseClass это наследник DepencesObject в котором определено свойство DependencyProperty

public class BaseClass : DepencesObject
{
    public string Field
    {
       get{return(string)Getvalue(FieldProperty);}
       set{SetValue(FieldProperty, value);}
    }
    public static readonly DependencyProperty FieldProperty = DependencyProperty.register("Field", typeof(string), typeof(string));
}

В XAML формы прописано:

<TextBlock Text="{Binding cls1.Field}"/>

Но или не проходит привязка, или не обновляются данные из Field (на момент создания формы там "")

В чем я ошибся?

Answer 1

У вас ошибка:

DependencyProperty.register("Field", typeof(string), typeof(string));

Это неверно, нужно

DependencyProperty.Register("Field", typeof(string), typeof(BaseClass));

Не создавайте DependencyProperty вручную, пользуйте сниппетом propdp.

READ ALSO
Помощь с базами данных

Помощь с базами данных

При создании локальной базы данных в Visual Studio происходит ошибка при загрузке конструктора таблицПишет: Ошибка при загрузке

486
как правильно сделать Basic авторизацию? C#, xNet

как правильно сделать Basic авторизацию? C#, xNet

Для выполнения запроса требуется basic авторизацияЗапросы к серверу осуществляются по протоколу HTTPS методом POST

283
Не запускается приложение из службы Windows (C#)

Не запускается приложение из службы Windows (C#)

Добрый день! Я написал два C# проекта: службу и консольное приложениеСмысл службы заключается в том, чтобы постоянно следить за приложением...

299