使用IValueConverter将绑定文本转换为图像

时间:2011-04-04 20:19:55

标签: wpf

我有一个网格,我想从该单元格中取出文本,将其转换为图像并将其发送回网格。

这是我的模板代码:     

<DataTemplate x:Key="categoryCellTemplate">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="50" />
        </Grid.RowDefinitions>

        <Image Grid.Column="0"
               Margin="1,1,4,1"
               VerticalAlignment="Center"
               Source="{Binding Converter={StaticResource catConverter}}"
               />
    </Grid>
</DataTemplate>

这是我的xaml代码:                                                                                                 

<Grid>
    <xcdg:DataGridControl Height="311" 
                          HorizontalAlignment="Left" 
                          Name="dataGridControl1" 
                          VerticalAlignment="Top" 
                          Width="503"
                          ItemsSource="{Binding Source={StaticResource Clients}}">
        <xcdg:DataGridControl.Columns>
            <xcdg:Column FieldName="Name" />
            <xcdg:Column FieldName="Age" />
            <xcdg:Column FieldName="Category" />
            <xcdg:Column FieldName="Color"
                         CellContentTemplate="{StaticResource categoryCellTemplate}" />
            <xcdg:Column FieldName="DOB" />
        </xcdg:DataGridControl.Columns>
    </xcdg:DataGridControl>
</Grid>

我在模板代码中遇到麻烦的是指定参数是什么....因为他绑定数据,我不知道如何将它发送到转换器类..请帮助!!

1 个答案:

答案 0 :(得分:0)

这取决于您想要传递的参数类型。您可以像这样使用ConverterParamter

Source="{Binding Converter={StaticResource catConverter}, ConverterParameter='some parameter'}"

ConverterParameter不是依赖属性,因此您无法使用绑定。如果要提供动态上下文,则需要使用多重绑定和多值转换器,如下所示:

<Image.Source>
    <MultiBinding Converter={StaticResource catMultiConverter}>
      <Binding .../>
      <Binding .../>
    </MultiBinding>
</Image.Source>