0
我想在我的WPF項目的DataGrid中的特定字段使用IValueConverter。我發現轉換器從不被調用,即使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項目。非常感謝幫助。謝謝!
好吧,就是這樣。太感謝了。 – user2434237
@ bogza.anton,請將您的評論添加到答案中,以便將此問題設置爲已回答。如果你可以添加更多的解釋來幫助未來的用戶,這將不勝感激。非常感謝。 – Sheridan