Silverlight: Могу ли я создать пользовательскую кнопку, которая содержит два TextBlocks, каждый из которых привязан к своему свойству объекта? - PullRequest
1 голос
/ 11 января 2010

Я хочу сделать кнопки, подобные кнопкам на этом веб-сайте.

Допустим, объект, с которым я работаю, это ArtPiece, и у него есть Название и Дата. Я хочу, чтобы оба этих элемента отображались на моих кнопках в двух разных текстовых блоках.

Я пытался изменить ContentTemplate кнопки, затем изменил ContentPresenter кнопки внутри ContentTemplate, но я все еще не могу связать TextBlocks.

Любая помощь, чтобы сделать это полностью в XAML? Я использую Expression 3.

Ответы [ 2 ]

3 голосов
/ 11 января 2010

Вы хотите сделать что-то вроде этого:

        <Button Click="Button_Click" Name="button" >
            <Button.ContentTemplate>
                <DataTemplate>
                    <StackPanel Background="Yellow" Width="200" Height="200">
                        <TextBlock Text="{Binding Title}" />
                        <TextBlock Text="{Binding Date}" />
                    </StackPanel>
                </DataTemplate>
            </Button.ContentTemplate>
        </Button>
0 голосов
/ 11 января 2010

Похоже, что вам действительно нужна какая-то поддержка нескольких связей, чтобы связать эти два свойства с одним свойством Content на кнопке. Насколько я знаю, в Silverlight нет встроенной поддержки мульти-связывания, как в WPF. В этой статье описан один подход к его реализации в Silverlight.

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

...