gpt4 book ai didi

c# - 如何将字节数组转换为 DataGridView 的字符串

转载 作者:行者123 更新时间:2023-11-30 20:41:45 24 4
gpt4 key购买 nike

我有一个具有以下属性(字段)的域类用户:

UserId (int)
UserName (nvarchar(25))
SecurePassword (varbinary(32))
Salt (varbinary(32))

SecurePassword 和 Salt 存储一个长度为 32 的字节数组,您可能已经猜到了。如果我设置我的

BindingSource.DataSource = context.Users.Local.ToBindingList();

然后是我的

DataGridView.DataSource = BindingSource;

我会收到一个错误,告诉我处理 GridView 的 DataError 事件。一旦我使用空方法执行此操作,SecurePassword 和 Salt 列就会为每一行显示 [X]。

现在,我可以使用 linq 以匿名类型将其呈现为:

 var data = from u in context.Users
select new
{
u.UserId,
u.UserName,
SecurePassword = BitConverter.ToString(u.SecurePassword),
Salt = BitConverter.ToString(u.Salt)
};

但我真的不想要匿名类型。在 WPF 中,我可以编写一个继承自 IValueConverter 的转换器,但在 WinForms 中似乎不可用。我们将不胜感激和欢迎任何帮助。

最佳答案

使用 CellFormatting 事件。像这样的东西:

void dataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
// 2 - Salt, 3 - SecurePassword
if (e.ColumnIndex == 2 || e.ColumnIndex == 3)
{
if (e.Value != null)
{
byte[] array = (byte[])e.Value;
e.Value = BitConverter.ToString(array);
e.FormattingApplied = true;
}
else
e.FormattingApplied = false;
}
}

关于c# - 如何将字节数组转换为 DataGridView 的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32102929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com