簡體   English   中英

如何將數據傳遞到XAML中的IValueConverter?

[英]How do you pass data into an IValueConverter in XAML?

我有一個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" />

問題是,我需要一種方法將我的Model對象傳遞給這個轉換器。 我該怎么辦?

謝謝。

這是價值轉換器的經典問題。

如果您使用的是MVVM模式,則可以通過在模型的ViewModel中實現轉換來解決該問題。

如果沒有,您可以在MSDN論壇上查看此帖子 (來自Sam Bent的回答 - MSFT)

目標是使用multibinding將模型傳遞給轉換器,在這種情況下,傳遞DataContext。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM