动态绑定到工具栏项图标以从文件切换图像



我正在尝试使用带有过滤器图标的 MVVM 构建工具栏。 当您单击它时,您会导航到设置过滤器的某个位置,然后导航回来。如果过滤器与选定的项目处于活动状态,我希望工具栏图标现在是一个不同的图像。

但是绑定似乎不起作用。每当我将图标设置为"过滤器.png等文件中的图像字符串时,工具栏只会显示文本"过滤器"。当我转换绑定到文件图像源的值时,出现错误

那么我该如何正确执行此操作呢?我已经尝试使用转换器,但结果相同。我的代码是:

XAML:

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

我的视图模型:

private string _filterIcon;
public string FilterIcon
{
    get => _filterIcon;
    set => SetProperty(ref _filterIcon, value);
}
                FilterIcon = _selectedFilter.Any() ? "FilterDone.png" : "Filter.png";

正如我已经说过的,将项类型从字符串更改为FileImageSource,因为图标的类型是MenuItem.Icon也不起作用。谢谢大家

我看到您正在绑定FilterIconActive属性,而您正在FilterIcon属性中进行更改。

我注意到的另一件事是,您没有使用INotifyPropertyChanged的事件来通知您的属性其值发生了变化。

最新更新