Ошибка кнопки привязки данных к статическому ресурсу - PullRequest
1 голос
/ 25 июня 2010

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

У меня есть

<UserControl.Resources>        
    <Rectangle x:Key="Icon1" Fill="Black" Width="10" Height="10" />            
</UserControl.Resources>

и

<Button x:Name="Button1"
        Width="50" Height="50"                        
        Content="{Binding Source={StaticResource Icon1}}" /> 

Я тоже пробовал ... Content="{StaticResource Icon1}".Оба хорошо отображаются в XAML Designer VS 2010, но не удается, когда я пытаюсь запустить его с XAMLParseException.Первый жалуется на то, что аргумент не попадает в ожидаемый диапазон, второй просто говорит: «Не удалось присвоить свойство».Копирование прямоугольника в содержимое кнопок напрямую работает нормально.

В чем проблема?Я думал, что наконец понял это .. = /

Ответы [ 2 ]

2 голосов
/ 27 июня 2010

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

<ControlTemplate
    x:Key="IconTemplate">
       <Rectangle x:Key="Icon1" Fill="Black" Width="10" Height="10" />   
</ControlTemplate>

<Style x:Key="IconStyle" TargetType="Button">
       <Setter Property="Template" Value="{StaticResource IconTemplate}"/>
</Style>

<Button x:Name="Button1"
        Width="50" Height="50"                        
        Style="{StaticResource IconStyle}" /> 

НТН

0 голосов
/ 22 января 2013

Я выполнил это, установив ContentTemplate в DataTemplate:

<UserControl.Resources>        
    <DataTemplate x:Key="Icon1">
        <Rectangle Fill="Black" Width="10" Height="10" />            
    </DataTemplate>
</UserControl.Resources>

Button:

<Button x:Name="Button1"
        Width="50" Height="50"                        
        ContentTemplate="{StaticResource Icon1}" /> 

Настройка шаблона на кнопке тоже работает, но я считаю, что вам придется заменитьвесь шаблон для контроля.Такой подход позволяет сохранить существующий шаблон элемента управления.

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