WPF и XAML: как привязать свойство Color к кисти - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь установить фон текстового блока:

        <ListBox x:Name="Teams" Grid.Row="0" Grid.ColumnSpan="2" HorizontalAlignment="Center" >
        <ListBox.ItemTemplate>
            <DataTemplate>
                <DataTemplate.Resources>
                    <SolidColorBrush x:Key = "teamColor" Color="{Binding TeamColor}"/>
                    <!--This below doesn't work either..-->
                    <!--<SolidColorBrush x:Key = "teamColor" Color="Aqua"/>-->
                </DataTemplate.Resources>

                <StackPanel Orientation="Vertical" >
                    <TextBlock Text="{Binding TeamName}" HorizontalAlignment="Center" Background="{Binding teamColor}"/>

                    <!--Binding with the viewModel color property works, since the textblock below displays the team's color-->
                    <TextBlock Text="{Binding TeamColor}" HorizontalAlignment="Center"/>  
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

Поскольку, если я определю точный цвет (см. Прокомментированную строку - Color = Aqua), а фон текстового блока все равно останется белым, Я предполагаю, что данный solidcolorbru sh, который определен в datatemplate.resources, не может использоваться для установки цвета фона текстового блока.

Что мне не хватает?

1 Ответ

2 голосов
/ 16 июня 2020
Background="{Binding teamColor}"

не имеет смысла, потому что нет свойства teamColor.

Должно быть

Background="{StaticResource teamColor}"

Или без объявления ресурса:

<TextBlock Text="{Binding TeamName}" HorizontalAlignment="Center">
    <TextBlock.Background>
        <SolidColorBrush Color="{Binding TeamColor}"/>
    </TextBlock.Background>
</TextBlock>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...