c# - WPF 绑定(bind)设计时 "Property Expected"错误

标签 c# wpf xaml visual-studio-2013

我正在尝试将可观察集合绑定(bind)到 WPF DataGrid。我的属性之一是 bool 值。我不喜欢 DataGrid 的 CheckboxColumn,因此我使用 TemplateColumn 推出了自己的 CheckboxColumn,我将其绑定(bind)到 DataContext 上的公共(public)属性。该项目设计、编译和运行良好。但是,在设计器中,Visual Studio 2013 Professional 将绑定(bind)路径用红色下划线。当我将鼠标悬停在它上面时,它会显示“预期属性(property)”。奇怪的是,这并没有出现在错误列表中,但滚动条上确实有红色的“错误标记”。此外,如果我使用“标准”CheckboxColumn,VS 不会显示下划线。

这是我的 DataContext 类:

sealed class Connection : IDisposable
{
    public bool Log { get; set; }

    public int HashCode { get; private set; }
}

这是 DataGrid 的 XAML:

<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Path=Connections}" SelectionMode="Single">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding Path=HashCode, StringFormat={}{0:X}}" Header="ID" IsReadOnly="True" Width="50*"/>
        <DataGridTemplateColumn Header="Log">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <CheckBox HorizontalAlignment="Center" VerticalAlignment="Center" IsChecked="{Binding Path=Log, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

错误截图如下:

Error

奇怪的是,VS 适用于此 XAML,由于列的行为我不想使用它:

<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Path=Connections}" SelectionMode="Single">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding Path=HashCode, StringFormat={}{0:X}}" Header="ID" IsReadOnly="True" Width="50*"/>
        <DataGridCheckBoxColumn Binding="{Binding Path=Log, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Header="Log" />
    </DataGrid.Columns>
</DataGrid>

正如我所说,它编译并运行良好。这是 Visual Studio 中的错误吗?

最佳答案

尝试像这样为 DataTemplate 指定数据类型:

<DataTemplate DataType="wpfApplication1:Connection">
    <CheckBox ... />
</DataTemplate>

关于c# - WPF 绑定(bind)设计时 "Property Expected"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27684665/

相关文章:

c# - 多线程程序中key个数固定的情况下用Dictionary代替ConcurrentDictionary是否可以?

c# - 将多个子组件作为参数传递

c# - 索引 Sitecore 个人资料卡及其值(value)

c# - 使用绑定(bind)时如何在 TabControl 中保留选项卡

wpf - 如何使用转换器绑定(bind)到静态资源?

xaml - 如何在 WP8 工具包 PhoneTextBox 中将提示居中

c# - Windows App Store - 拉伸(stretch)图标

C# 乘以包含 Random.next 实例的方法

wpf - 如何在wpf中动态更改Xaml页面标题?

wpf - 如何复用控制模板?