Ошибка привязки сетки данных WPF к dagagtetextcolumn.ElementStyle - PullRequest
0 голосов
/ 03 октября 2018

Я написал следующий код в 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: свойство 'comments' не найдено в 'object' '' DataRowView'(HashCode = 43816328)'.BindingExpression: Path = комментарии;DataItem = 'DataRowView' (HashCode = 43816328);целевым элементом является TextBlock (Name = '');Целевым свойством является «Текст» (тип «Строка»)

1 Ответ

0 голосов
/ 03 октября 2018

Пожалуйста, опубликуйте Минимальный, завершенный и проверяемый пример , который воспроизводит вашу проблему.

Код ниже прекрасно работает для меня.

DataItem.cs

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

    public string B => "BBBBBBBBBB";

    public string C => "CCCCCCCCCC";
}

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

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...