首页 > 解决方案 > 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'(名称='');目标属性是“文本”(类型“字符串”)

标签: c#wpfdata-binding

解决方案


请发布一个最小的、完整的和可验证的示例来重现您的问题。

下面的代码对我来说很好。

数据项.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>

推荐阅读