C#代码中的Xaml转换器

时间:2013-07-02 13:28:08

标签: silverlight xaml c#-4.0 converter

我有这段代码:

Color color = GetMyColor();
string s = @"<DataTemplate xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""><StackPanel Background=""" + color + "\" ><TextBlock Text=\"{Binding Label}\"  HorizontalAlignment=\"Center\"   /></StackPanel></DataTemplate>";
var MyObject.Template = (DataTemplate)XamlReader.Load(s);

我想在我的绑定中添加一个转换器,有些像这样:

Color color = GetMyColor();
string s = @"<DataTemplate xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""><StackPanel Background=""" + color + "\" ><TextBlock Text=\"{Binding Converter={StaticResource NumberConverter}}\"  HorizontalAlignment=\"Center\"   /></StackPanel></DataTemplate>";
var MyObject.Template = (DataTemplate)XamlReader.Load(s);

但是,这不起作用,因为我需要添加我的转换器的命名空间。

我该怎么做?

由于

1 个答案:

答案 0 :(得分:0)

AFAIK, StaticResource只是按名称工作。它看起来像资源。它似乎不是命名空间问题。

您可以通过

轻松添加命名空间
    @"<DataTemplate xmlns:local=""clr-namespace:YourProjectBus.Converters"" 

除此之外,请确保您的staticresource(NumberConverter)以前添加到运行中 类。 必须在

之前完成
 var MyObject.Template = (DataTemplate)XamlReader.Load(s);

,例如

  ctor()
{
   this.Resources.Add("NumberConverter",new NumberConverter());
}

检查输出窗格中显示的输出,绑定错误。 祝你好运!