Во-первых, привязки данных в WPF работают только с открытыми свойствами.Таким образом, вы должны явно объявить один в своем коде (вместо string str;
)
public string str { get; set; }
Во-вторых, свойство DataContext
представления определяет объект / класс, в котором будет выполняться поиск свойства дляпривязок.Линия this.DataContext = str;
в вашем примере означает, что вы хотите, чтобы ваши привязки в представлении просматривались внутри объекта str
(который является string
).Вам следует заменить эту строку на
this.DataContext = this;
, чтобы поиск связывался в коде позади этого представления.
Примечание Вы могли также остается со строкой this.DataContext = str;
, если str
является общедоступным свойством, и связывается с помощью выражения, например
<TextBox Text="{Binding .}" />
, которое будет привязано к значению свойства DataContext.