Как сделать привязку в этом случае? - PullRequest
0 голосов
/ 29 мая 2011

Как показывает код ниже, у меня есть Canvas с TextBlock внутри. Рядом с ним два textBlocks, их текстовые свойства, связанные с переменными LineOne и LineTwo, ObservableCollection. Я хочу создать привязку, которая дает дату и соответственно изменить цвет Canvas.

Теоретически я могу связать изменение даты для свойства Text DateTextBlock. Но я не уверен, как сделать изменение цвета Canvas.

<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="0,0,0,17">
 <!--Replace rectangle with image-->
<Canvas Width="100" Height="100" Background="YellowGreen">
<StackPanel>
<TextBlock Name="DateTextBlock" Text="16 May" HorizontalAlignment="Center" VerticalAlignment="Center" />
</StackPanel>
</Canvas>
<StackPanel Width="311">                                    
<TextBlock Text="{Binding LineOne}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
<TextBlock Text="{Binding LineTwo}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
</StackPanel>
</StackPanel>
</DataTemplate>

Пожалуйста, посоветуйте мне. Спасибо,

Ответы [ 2 ]

0 голосов
/ 29 мая 2011

Свойство Canvas Background имеет тип Brush.Следовательно, вам либо придется связать свойство типа Brush с Canvas.Background, либо вы можете использовать ValueConverter для преобразования свойства moel в Brush.Смотрите примеры на этой странице:

http://compiledexperience.com/blog/posts/useful-calue-converters

0 голосов
/ 29 мая 2011

Создайте свойство цвета в модели вида и уведомите об изменении свойства.Привязать атрибут представления к свойству Color.В модели представления, когда текст изменяется (или что-то еще, что вы хотите, чтобы вызвать изменение цвета), обновите свойство Color соответствующим цветом, убедившись, что вы используете открытое свойство, чтобы сработало событие change.

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