从DataTemplate绑定到MainPage属性

时间:2014-01-28 13:27:55

标签: c# wpf xaml windows-runtime

我正在尝试将MainPage(CodeBehind)中定义的对象绑定到ListView DataTemplate中的ConverterParameter:

<ListView ...>
  <ListView.ItemTemplate>
    <DataTemplate>
      <TextBlock Text=".. SomeBindingExpression"
   FontWeight="{Binding Converter={StaticResource ChangeDateToFontWeightConverter},ConverterParameter={Binding Source=MainPage,Path=Cache}}"/>
      </TextBlock>
    </DataTemplate>
  </ListView.ItemTemplate>
</ListView>

目标是将“Cache” - MainPage中定义的对象传递给Converter。 obove Code正确调用转换器,但传递的对象Parameter为null。有没有办法在这个XAML代码中引用Cache对象?

1 个答案:

答案 0 :(得分:0)

ConverterParameter接受一个字符串,根本不能数据绑定。 您可以将自定义属性添加到转换器类,并在MainPage的代码隐藏中传递“Cache”对象。

((ChangeDateToFontWeightConverter)this.Resources["ChangeDateToFontWeightConverter"]).MyCustomProperty = myCacheObject;

一般情况下,我建议采用MVVM方法并使用缓存对象中的所需数据扩展数据绑定类(如果可能)。这样你根本不需要转换器。