不调用DataGrid Converter

时间:2014-01-29 23:41:49

标签: c# wpf ivalueconverter

我正在尝试将IValueConverter用于我的WPF项目中的DataGrid中的特定字段。我发现即使DataGrid在数据到达时填充,也永远不会调用转换器。

我有以下代码:

<UserControl.Resources>
    <sol:RfidConverter x:Key="rfidConverter" />
</UserControl.Resources>
...
<DataGrid AutoGenerateColumns="False" Name="TagGrid" VerticalAlignment="Stretch" ItemsSource="{Binding}">
    <DataGrid.Columns>
        <DataGridTextColumn IsReadOnly="True" Header="Tag ID" Width="200" Binding="{Binding Rfid, Converter={StaticResource rfidConverter}}"></DataGridTextColumn>
        <DataGridCheckBoxColumn Header="Delete" Width="Auto" Binding="{Binding ToDelete}"></DataGridCheckBoxColumn>
    </DataGrid.Columns>
</DataGrid>

在C#中:

// Tags is an ObservableCollection<Tag>
TagGrid.DataContext = a.GetActiveItem<Project>().Tags;

我的转换器代码:

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
    string val = ((Int64)value).ToString("x").PadLeft(8, '0');
    return val;
}

我认为我的转换器没有被调用的原因很简单。我在以“string val = ...”开头的行上设置了一个断点,即使空白条目添加到我的DataGrid中,断点也永远不会被命中。这是我的第一个WPF项目。非常感谢帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

我已经复制了你的例子。执行绑定和转换工作。重新检查字段名称绑定(Rfid)。