c# - datagridtextcolumn.ElementStyle 上的 WPF 数据网格绑定错误
问题描述
我在 wpf datagrid 中编写了以下代码
<DataGridTextColumn Binding="{Binding comments}" Width="350" Header="Comments" IsReadOnly="False" >
<DataGridTextColumn.ElementStyle>
<Style>
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
<Setter Property="TextBlock.TextAlignment" Value="Left"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
并得到下面的错误,但网格工作正常。谁能帮我确定我收到以下错误的原因。
System.Windows.Data 错误:40:BindingExpression 路径错误:在“对象”“DataRowView”(HashCode=43816328)上找不到“评论”属性。BindingExpression:路径=评论;DataItem='DataRowView' (HashCode=43816328); 目标元素是'TextBlock'(名称='');目标属性是“文本”(类型“字符串”)
解决方案
请发布一个最小的、完整的和可验证的示例来重现您的问题。
下面的代码对我来说很好。
数据项.cs
public class DataItem
{
public string A => "AAAAAAAAAA AAAAAAAAAA";
public string B => "BBBBBBBBBB";
public string C => "CCCCCCCCCC";
}
主视图模型.cs
public class MainViewModel
{
public MainViewModel()
{
DataItems = new List<DataItem>();
for (var i = 1; i <= 20; i++)
_dataItemList.Add(new DataItem());
}
public List<DataItem> DataItems {get;}
}
主视图.xaml
<Window ...>
<Window.DataContext>
<local:MainViewModel/>
</Window.DataContext>
<DataGrid Margin="16" ItemsSource="{Binding DataItems}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="A" Binding="{Binding A}" Width="100">
<DataGridTextColumn.ElementStyle>
<Style>
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
<Setter Property="TextBlock.TextAlignment" Value="Left"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="B" Binding="{Binding B}"/>
<DataGridTextColumn Header="C" Binding="{Binding C}"/>
</DataGrid.Columns>
</DataGrid>
</Window>
推荐阅读
- php - 在使用 php pdo 调用存储过程后检查没有行到 mysql 数据库 columnCount 不起作用
- python - Scrapy 正在爬行,但没有输出
- django - TemplateDoesNotExist 在 /accountparents/login/
- winapi - 在 Windows 8.1/10 中正确获取 Win32MajorVersion 和 Win32MinorVersion
- go - 使用 zerolog 获取数据竞争条件
- windows - 如何通过键入“ant”从 intellij 终端构建 .jar 库?
- python - 使用 f2py 获取 ImportError: DLL load failed: 找不到指定的模块
- php - 在实时服务器上找不到 Laravel Api 路由
- c - 在 fget 之前进行扫描
- c++ - 使用 OpenGL 在 C++ 中绘制 8 x 15 矩形网格 - 崩溃