динамическая привязка к значку панели инструментов для переключения изображений из файла - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь создать панель инструментов, используя MVVM со значком фильтра.когда вы щелкаете по нему, вы перемещаетесь куда-то, где вы устанавливаете фильтр, а затем возвращаетесь обратно.Если фильтр активен с выбранными элементами, я хочу, чтобы значок на панели инструментов теперь был другим изображением.

НО привязка не работает.Всякий раз, когда я устанавливаю иконку в виде строки моего изображения в таких файлах, как «Filter.png», панель инструментов отображает только текст «FILTER».Когда я конвертирую значение, привязанное к FileImageSource, я получаю сообщение об ошибке

Так как мне сделать это правильно?Я уже пытался использовать конвертер, но тот же результат.Мой код:

XAML:

 <ContentPage.ToolbarItems>
    <ToolbarItem Order="Primary" Icon="{Binding FilterIconActive}" Text="Filter" Priority="0" Command="{Binding FilterCommand}" />
</ContentPage.ToolbarItems>

MyViewModel:

private string _filterIcon;

public string FilterIcon
{
    get => _filterIcon;
    set => SetProperty(ref _filterIcon, value);
}

                FilterIcon = _selectedFilter.Any() ? "FilterDone.png" : "Filter.png";

Как я уже говорил, изменение типа элемента со строки на FileImageSource, поскольку Icon имеет тип MenuItem.Икон тоже не работает.Спасибо, ребята

1 Ответ

0 голосов
/ 13 февраля 2019

Я вижу, что вы связываете свойство FilterIconActive, в то время как вы вносите изменение в свойство FilterIcon.

Еще одна вещь, которую я заметил, это то, что вы не используете INotifyPropertyChanged *1006*событие для уведомления вашей собственности об изменении ее стоимости.

...