свойство привязки одного поля к другому в wp7 - PullRequest
0 голосов
/ 09 марта 2012
<TextBlock  Name="currency"  TextWrapping="Wrap" VerticalAlignment="Center"/>

<TextBlock Margin="5,0"  Text="{Binding Text, ElementName=currency" TextWrapping="Wrap" VerticalAlignment="Center" FontSize="22" />

Я использую приведенный выше код для привязки свойства одного поля к другому в моем приложении WP7.

Я хочу сделать аналогичное задание из серверной части. какие-либо предложения ??

Ответы [ 2 ]

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

Привязки работают в указанном контексте данных.Вы можете установить контекст данных вашего макета корня для экземпляра страницы, затем вы можете привязать к любому из ваших свойств.(DataContext наследуется через дочерний FrameworkElements.) Если вы хотите, чтобы ваша привязка обновляла свое значение всякий раз, когда вы изменяете свое свойство из кода, вам нужно реализовать интерфейс INotifyPropertyChanged или использовать свойства зависимости.

<Grid x:Name="LayoutRoot">
    <TextBox Text="{Binding Test, Mode=TwoWay}" />
</Grid>

public class MainPage : PhoneApplicationPage, INotifyPropertyChanged
{
    private string test;
    public string Test
    {
        get { return this.test; }
        set
        {
            this.test = value;
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs("Test"));
        }
    }

    public MainPage()
    {
        InitializeComponents();
        LayoutRoot.DataContext = this;
    }

    public event PropertyChangedEventHandler PropertyChanged;
}

Этоглупый пример, так как вы можете в любой момент получить доступ к вашему TextBox из MainPage, это имеет гораздо больший смысл, если вы отображаете объекты модели с помощью DataTemplates.

(Я набрал это на телефоне, надеюсь, он скомпилируется ..)

0 голосов
/ 28 марта 2012

я получил свое решение как: var b = new Binding {ElementName = "currency", Path = new PropertyPath ("Text")};Textblock txt = new TextBlock ();txt.SetBinding (TextBlock.TextProperty, b);

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