Динамическая привязка к значку панели инструментов для переключения изображений из файла
Я пытаюсь построить панель инструментов, используя 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 для уведомления вашей собственности об изменении ее стоимости.