gpt4 book ai didi

c# - 如何将数据传递到 XAML 中的 IValueConverter?

转载 作者:可可西里 更新时间:2023-11-01 08:27:14 27 4
gpt4 key购买 nike

我有一个 IValueConverter,它的工作是将 BlockId 转换为 ConditionLabel。问题是我的 Model 对象具有进行实际转换的智能。到目前为止,我的代码看起来像这样......

public class BlockIdToConditionLabelConverter : IValueConverter
{
private Model _model;

public BlockIdToConditionLabelConverter(Model model)
{
_model = model;
}

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
int blockId = (int)value;
return _model.BlockIdToConditionLabel(blockId);
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return Binding.DoNothing;
}
}

目前,我像这样在 ResourceDictionary 中创建一个静态资源(稍后在 DataTemplate 中引用它):

<local:BlockIdToConditionLabelConverter
x:Key="_blockIdToConditionLabelConverter" />

问题是,我需要一种方法将我的模型对象传递到这个转换器中。我该怎么做?

谢谢。

最佳答案

这是值转换器的经典问题。

如果您使用的是 MVVM 模式,则可以通过在模型的 ViewModel 内部实现转换来解决该问题。

没有的话可以看看this post on MSDN forums . (来自 Sam Bent - MSFT 的回答)

目标是使用多重绑定(bind)将模型传递给您的转换器,在本例中,传递 DataContext。

关于c# - 如何将数据传递到 XAML 中的 IValueConverter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1116329/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com