Динамическая привязка к значку панели инструментов для переключения изображений из файла

Я пытаюсь построить панель инструментов, используя 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";

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

1 ответ

Решение

Я вижу, что вы связываете FilterIconActive собственность, тогда как вы вносите изменения в FilterIcon имущество.

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

Другие вопросы по тегам