简体   繁体   English

WPF datagrid在datagridtextcolumn.ElementStyle上的绑定错误

[英]WPF datagrid binding error on datagridtextcolumn.ElementStyle

I wrote the below code in wpf datagrid 我在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>

And getting the error below, but the grid is working fine. 并得到下面的错误,但网格工作正常。 Can anyone please help me to identify why I am getting the below error. 谁能帮我确定为什么我遇到以下错误。

System.Windows.Data Error: 40 : BindingExpression path error: 'comments' property not found on 'object' ''DataRowView' (HashCode=43816328)'. System.Windows.Data错误:40:BindingExpression路径错误:在'object''DataRowView'(HashCode = 43816328)'上找不到'comments'属性。 BindingExpression:Path=comments; BindingExpression:路径=意见; DataItem='DataRowView' (HashCode=43816328); DataItem ='DataRowView'(HashCode = 43816328); target element is 'TextBlock' (Name=''); 目标元素是'TextBlock'(Name =''); target property is 'Text' (type 'String') 目标属性为“文本”(类型为“字符串”)

Please post a Minimal, Complete, and Verifiable example that reproduces your issue. 请发布一个最小,完整和可验证的示例来重现您的问题。

The code below works fine for me. 下面的代码对我来说很好。

DataItem.cs DataItem.cs

public class DataItem
{
    public string A => "AAAAAAAAAA AAAAAAAAAA";

    public string B => "BBBBBBBBBB";

    public string C => "CCCCCCCCCC";
}

MainViewModel.cs MainViewModel.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;}
}

MainView.xaml MainView.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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM