Цвет фона привязки не работает - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь установить цвет фона некоторой иконки с помощью привязки, но я, вероятно, что-то упускаю и не знаю, что.

xaml:

<materialDesign:PackIcon x:Name="SaveIcon" Kind="ContentSave" 
                         Height="25" Width="25" Background="{Binding Background}" />

Код позади:

public Page6()
{
    InitializeComponent();
    DataContext = this;
    Background = "Red";
}

private string _background;
public string Background
{
    get
    {
        return _background;
    }

    set
    {
        _background = value;
        OnPropertyChanged();
    }
}

public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged([CallerMemberName] string propertyName=null)
{
        PropertyChanged?.Invoke(this , new PropertyChangedEventArgs(propertyName));
}

Но это ничего не делает, я имею в виду, что нет цвета фона.

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

В классе Control уже есть свойство Brush Background.Ваше свойство string Background скрывает базовое свойство, но привязка Background="{Binding Background}" по-прежнему выбирает базовое свойство.

Вы можете полностью удалить string Background и использовать Brush Background, или переименовать новое свойство.

public Page6()
{
    InitializeComponent();
    DataContext = this;
    BackColor = "Red";
}

private string _background;
public string BackColor
{
        get
        {
            return _background;
        }

        set
        {
            _background = value;
            OnPropertyChanged();
        }
}

Изменить привязку:

Background="{Binding BackColor}"
0 голосов
/ 22 мая 2018

измените свойство фона на

private SolidColorBrush _background;
public SolidColorBrush Background
{
    get
    {
        return _background;
    }

    set
    {
        _background = value;
        OnPropertyChanged();
    }
}

и измените Background = "Red" на Background = new SolidColorBrush(Colors.Red);

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