绑定到 WPF DataGrid 中的简单属性

29 浏览
0 Comments

绑定到 WPF DataGrid 中的简单属性

我在我的模型上绑定属性时遇到了问题。在DataGrid中,我正在显示错误。每个错误都有属性ErrorDescription,它本身有属性Severity

我可以在下面的DataGrid的TextColumn中绑定Severity,但是在TemplateColumn中绑定Severity失败,并显示错误信息:

“无法解析数据上下文中的属性“ErrorDescription”,类型为MainViewModel”

我的图像列的DataContext与我的第一个文本列不同。为什么会这样?

  
    
        // 正常工作
        
        
            
                
                    
                        
                            
                        
                    
                
            
        
    
  

0
0 Comments

问题的原因是在WPF DataGrid中绑定简单属性时遇到困难。在这个问题中,希望根据枚举类型的值显示不同的图标或特定的属性值。作者提出使用Converter来解决这个问题。

解决方法是创建一个Converter类,实现IValueConverter接口。在Convert方法中,根据枚举类型的值返回相应的图标路径或属性值。在这个例子中,Converter根据Severity枚举类型的不同值返回不同的图标路径。如果没有匹配的值,则可以返回默认值。在ConvertBack方法中,作者抛出了一个NotImplementedException异常,因为不需要在这个例子中实现双向绑定。

还有一个与问题类似的问题,虽然不是关于DataGridTemplateColumn的。这个问题是关于根据枚举值启用TextBox的问题。作者将这个问题的链接附在了文章中,以供参考。

总结起来,问题的原因是在WPF DataGrid中绑定简单属性时遇到困难,解决方法是使用Converter来根据枚举值返回不同的图标路径或属性值。

0