c# - WPF 指定绑定时如何生成列
问题描述
我有一个DataGrid
被各种DataTable
s 绑定的。可为空的boolean
列被转换为DataGridCheckboxColumn
. 有没有办法将其转换为显示是、否、不可用的文本列?
解决方案
您可以创建一个值转换器并将其指定为 Converter 的绑定。
public class BooleanToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (targetType == typeof(string) && value is bool?)
{
var b = (bool?)value;
if (!b.HasValue)
return "not available";
return b.Value ? "yes" : "no";
}
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
// implement it if you need two-way binding
throw new NotImpementedException();
}
}
在 XML 中,在 Resources 中创建它的一个实例
<local:BooleanToStringConverter x:Key="BooleanToStringConverter" />
并将其添加到绑定中
Binding={"Binding MyColumn, Converter={StaticResource BooleanToStringConverter}}"
推荐阅读
- python - 为什么我没有在其派生类的实例中初始化继承类实例属性失败时收到错误消息?
- node.js - Plesk Git 其他部署操作 npm 未执行
- ssl - Helm - 错误:x509:无法验证 127.0.0.1 的证书,因为它不包含任何 IP SAN
- go - 为什么我们需要在 goroutine 中运行无缓冲通道,但缓冲通道可以在没有 goroutine 的情况下工作?
- windows - 等将 www.example.com 托管到本地主机?
- python - Python 索引必须是整数
- python-3.x - 是否可以将浮点数转换为双精度数?
- javascript - 使用外部链接将图像上传到strapi
- reactjs - 有没有办法替换从子组件传递给 ReactDOM.render() 的第一个参数的内容?
- android - Mockito 不模拟存储库