You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET MAUI Toolkit Popup中使用转换器?

在MAUI Toolkit Popup中使用值转换器的正确方法

完全可行,以下是正确的实现语法和步骤:

1. 确保转换器定义正确

假设你已经有一个CurrencyDisplayConverter实现了IValueConverter,用于格式化Currency对象的显示文本:

public class CurrencyDisplayConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value is Currency currency)
        {
            return $"{currency.Code} - {currency.Name}";
        }
        return string.Empty;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

2. 在Popup的Resources中注册转换器

在toolkit:Popup标签内,通过<toolkit:Popup.Resources>节点注册转换器,注意要引入转换器所在的命名空间:

<toolkit:Popup xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
               xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
               xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
               xmlns:converters="clr-namespace:YourAppNamespace.Converters"
               x:Class="YourAppNamespace.Views.CurrencyPopup">

    <toolkit:Popup.Resources>
        <converters:CurrencyDisplayConverter x:Key="CurrencyDisplayConverter" />
    </toolkit:Popup.Resources>

    <!-- Popup内容区域 -->
    <VerticalStackLayout Padding="20">
        <!-- 绑定并应用转换器的Picker -->
        <Picker ItemsSource="{Binding Currencies}"
                ItemDisplayBinding="{Binding ., Converter={StaticResource CurrencyDisplayConverter}}" />
    </VerticalStackLayout>
</toolkit:Popup>

3. 绑定Popup的ViewModel

确保Popup已经正确绑定了包含ObservableCollection<Currency> Currencies的ViewModel,比如通过后台代码设置:

public CurrencyPopup(CurrencyViewModel viewModel)
{
    InitializeComponent();
    BindingContext = viewModel;
}

常见排查点

  • 确认转换器的命名空间在Popup的XAML中正确引入,无拼写错误
  • 检查StaticResource的Key和Resources中注册的转换器Key完全一致
  • 确保Picker的ItemsSource已正确绑定到ViewModel的Currencies集合

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 04:42:11