2010-08-31 2 views
1

Что должно быть одним из наиболее простейшей форме привязки данных, теперь вызывает у меня большое количество горя В моем XAML, у меня есть что-то, как например:WPF TextBox Databinding беды> :-(

<TextBox Text="{Binding Path=Speed}" /> 

Тогда в моем файле соответствия .cs, у меня есть свойство, как например:

public int Speed { get; set; } 

Но они не являются обязательными в гармонии, и я не понимаю, почему> :-(Любые предложения о том, что я делаю. неправильный был бы благодарен! Большое спасибо заранее: -D

+0

В Silverlight можно привязать только к DependencyProperty. Моя догадка такова, что это верно и в WPF. –

+0

:(В этом кодепроекте он делает что-то очень похожее http://www.codeproject.com/KB/WPF/wpfvalidation.aspx и еще несколько других примеров. Я не пробовал использовать их образцы, поэтому я не теперь точно, если это работает или нет :( –

+0

@Matt - это не так в любом случае. Цель (текст здесь) должна быть DP, но источником может быть любое свойство CLR. –

ответ

4

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

Его можно решить, указав имя UserControl (или Window ...) и установив привязку с помощью ElementName.

Например:

<Window 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Name="myWindow"> 
    <Grid> 
     <TextBox Text="{Binding Path=Speed, ElementName=myWindow}" /> 
    </Grid> 
</Window> 
+0

: -О, ты мой герой! Спасибо!: D, который сделал это. :-) (7 минут, и я могу принять это :-)) –

3

В конструкторе в файле .cs попробовать это:

this.DataContext = this; 
+0

ах, приятно ... это тоже работает. :-) Благодаря! –