Как я могу привязать свойство к TextBox - PullRequest
0 голосов
/ 24 марта 2012

Я знаю, может быть, это простой вопрос, но я не знаю, как реализовать это:

У меня есть код xaml:

<phone:PhoneApplicationPage.Background>
        <ImageBrush ImageSource="/conTgo;component/resources/images/bg_settings.png" Stretch="None"/>
    </phone:PhoneApplicationPage.Background>
    <TextBlock TextWrapping="Wrap" Text="{Binding VersionNumber}" Foreground="{StaticResource PhoneAccentBrush}" FontFamily="Segoe WP Black" FontSize="26.667" TextAlignment="Center" LineHeight="16"/>
</phone:PhoneApplicationPage>

В моем коде есть:

 public string VersionNumber { get; set; }

Как я могу это понять?

Ответы [ 2 ]

1 голос
/ 24 марта 2012

Шаблон MVVM настоятельно рекомендуется для разработки Silverlight и хорошо работает в подобных случаях, а также лучше настраивает ваш код для модульного тестирования.

Однако, если ваше свойство, к которому привязана ваша привязка, находится непосредственно в вашем элементе управления, и вы хотите оставить его там, тогда вашему элементу управления потребуется реализовать INotifyPropertyChanged, чтобы свойство могло подключиться к уведомлению об изменении Silverlight (или WPF):

public class YourControl : Control, INotifyPropertyChanged
{

    public string VersionNumber {
        get { return versionNumber; }
        set {
            versionNumber = value;
            NotifyPropertyChanged("VersionNumber");
        }         
    }
    private string versionNumber;

    public event PropertyChangedEventHandler PropertyChanged;

    protected void NotifyPropertyChanged(String info) {
        if (PropertyChanged != null) {
            PropertyChanged(this, new PropertyChangedEventArgs(info));
        }
    }
}

Опять же, я бы определенно рекомендовал подход MVVM, однако.

1 голос
/ 24 марта 2012

Привязка выполняет поиск по вашему текстовому тексту.Поэтому, если вы добавили свойство на свою страницу, то вы должны установить свою страницу как собственный текстовый текст.

В конструкторе вашей страницы после вызова «InitializeComponent ()» добавить:

this.DataContext = this;

Это должно сработать.

Этот метод подходит для небольших приложений.Если вы хотите сделать более крупное и структурированное приложение, вы можете узнать о шаблоне MVVM.

...