动态绑定到 ToolbarItem 图标以从文件切换图像
dynamic Binding to ToolbarItem Icon to switch Images from File
我正在尝试使用带有过滤器图标的 MVVM 构建工具栏。当您单击它时,您会导航到设置过滤器的位置,然后导航回来。如果筛选器对所选项目处于活动状态,我希望工具栏图标现在成为不同的图像。
但是绑定似乎不起作用。
每当我将图标设置为 "Filter.png" 等文件中的一串图像时,工具栏只会显示文本 "FILTER"。
当我转换绑定到 FileImageSource 的值时,出现错误
那么我该如何正确地做到这一点呢?我已经尝试使用转换器但结果相同。我的代码是:
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,因为 Icon 的类型为 MenuItem.Icon 也不起作用。谢谢大家
我看到您正在绑定 FilterIconActive
属性 而您正在 FilterIcon
属性.
中进行更改
我注意到的另一件事是您没有使用 INotifyPropertyChanged's 事件来通知您的 属性 它的值发生了变化。
我正在尝试使用带有过滤器图标的 MVVM 构建工具栏。当您单击它时,您会导航到设置过滤器的位置,然后导航回来。如果筛选器对所选项目处于活动状态,我希望工具栏图标现在成为不同的图像。
但是绑定似乎不起作用。 每当我将图标设置为 "Filter.png" 等文件中的一串图像时,工具栏只会显示文本 "FILTER"。 当我转换绑定到 FileImageSource 的值时,出现错误
那么我该如何正确地做到这一点呢?我已经尝试使用转换器但结果相同。我的代码是:
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,因为 Icon 的类型为 MenuItem.Icon 也不起作用。谢谢大家
我看到您正在绑定 FilterIconActive
属性 而您正在 FilterIcon
属性.
我注意到的另一件事是您没有使用 INotifyPropertyChanged's 事件来通知您的 属性 它的值发生了变化。