Привязка данных TextBlock.Text в DataTemplate - PullRequest
0 голосов
/ 14 апреля 2011


У меня есть элемент управления панорамой, в котором элемент панорамы привязан к шаблону данных.Шаблон данных:

<DataTemplate x:Key="MyTemplate">
    <Grid Height="546" Width="432">
        <TextBlock 
            x:Name="FromValueTB" 
            TextWrapping="Wrap" 
            VerticalAlignment="Top" 
            FontSize="40" 
            TextAlignment="Right" 
            Padding="0,0,10,0"/>
        <TextBlock 
            x:Name="FromValueUnitTB" 
            TextWrapping="Wrap" 
            Margin="0,50,15,0" 
            VerticalAlignment="Top" 
            FontSize="21.333" 
            TextAlignment="Right" 
            Foreground="{StaticResource PhoneAccentBrush}"/>
        <TextBlock 
            x:Name="ToValueTB" 
            TextWrapping="Wrap" 
            Margin="0,74,0,0" 
            VerticalAlignment="Top" 
            TextAlignment="Right" 
            FontSize="40" 
            Padding="0,0,10,0"/>
        <TextBlock 
            x:Name="ToValueUnitTB" 
            TextWrapping="Wrap" 
            Margin="0,119,15,0" 
            VerticalAlignment="Top" 
            TextAlignment="Right" 
            FontSize="21.333" 
            Foreground="{StaticResource PhoneAccentBrush}"/>
        <TextBlock 
            x:Name="RestltTB" 
            TextWrapping="Wrap" 
            Margin="0,144,0,0" 
            VerticalAlignment="Top" 
            TextAlignment="Center" 
            FontSize="16"/>
    </Grid>
</DataTemplate>

Панорамный элемент управления создается следующим образом:

<controls:Panorama 
    x:Name="mPanoramaControl" 
    Title="convertors" 
    Height="728" 
    Width="480" 
    Style="{StaticResource MyPanoramaStyle}">
    <controls:PanoramaItem Header="item" ContentTemplate="{StaticResource MyTemplate}"/>
</controls:Panorama>

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

Мой пользовательский класс будет выглядеть примерно так:

public class MyClass
{
    public string line1{get;set;}
    public string line2{get;set;}
    public string line3{get;set;}
    public string line4{get;set;}
    public string line5{get;set;}
}

Любая помощь будет оценена.

Спасибо

1 Ответ

2 голосов
/ 14 апреля 2011

Чтобы ваш пользовательский интерфейс обновлялся при изменении свойств вашего класса, вам необходимо реализовать INotifyPropertyChanged.На MSDN есть хорошая статья, в которой вы узнаете, как это сделать.

Если предположить, что контекст данных для элемента управления, использующего этот DataTemplate, установлен на экземпляр вашего класса, тоВам также необходимо связать свойство Text с соответствующим свойством: Text="{Binding line1}"

...