Простая привязка WPF к свойству объектов - PullRequest
2 голосов
/ 22 сентября 2009

У меня проблемы с привязкой в ​​wpf / xaml. Есть этот простой файл:

<Window x:Class="test.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid>
        <TextBlock Height="21" Foreground="Black" Margin="74,98,84,0" Name="textBlock1" VerticalAlignment="Top" Text="{Binding MyText}" />
    </Grid>
</Window>

Где я хочу привязать содержимое текстового блока к моей собственности "MyText". Мой код выглядит так:

 public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }

        public string MyText
        {
            get { return "This is a test"; }
        }
    }

В целом все очень просто, но когда я запускаю текстовый блок не имеет содержимого - как получится?

Ответы [ 3 ]

4 голосов
/ 22 сентября 2009

вам нужно имя элемента в вашей привязке:

<Window ... x:Name="ThisWindow"...>

        <TextBlock ... Text="{Binding MyText, ElementName=ThisWindow}" />
0 голосов
/ 23 сентября 2009

Есть несколько способов сделать это. Вероятно, самый простой для чего-то такого простого, как эта форма:

public Window1()
{
    InitializeComponent();
    this.DataContext = this;
}
0 голосов
/ 22 сентября 2009

Если я правильно помню синтаксис связывания WPF, я считаю, что ваше выражение связывания должно иметь вид Text = "{Binding Path = MyText}"

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