DataGrid单元格 - 将十进制和二进制数转换为十六进制

时间:2014-06-12 08:03:18

标签: c# wpf wpf-controls wpfdatagrid

在我的WPF应用程序中,我有一个填充DataGrid的DataTable,并且可以编辑DataGrid中的单元格。 我想,在特定列中,如果用户输入十进制或二进制数字,它将自动更改为十六进制数字。 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

有很多方法可以达到您的指定要求。评论中描述的方法是处理DataGrid.CellEditEnding event

<DataGrid ItemsSource="{Binding Items}" CellEditEnding="DataGrid_CellEditEnding" />

从链接页面,此事件:

  

在提交或取消单元格编辑之前发生。

因此,在用户在任何单元格中键入值后,将引发此事件。因此,您现在需要做的就是从此事件处理程序调用转换方法:

private void DataGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
{
    ((TextBox)e.EditingElement).Text = 
        ConvertToHexadecimal(((TextBox)e.EditingElement).Text);
}

private string ConvertToHexadecimal(string input)
{
    int number = 0;
    bool isInputInteger = int.TryParse(input, out number); 
    return isInputInteger ? number.ToString("X") : input; 
}
相关问题