我試圖將可觀察集合綁定到WPF DataGrid。我的一個屬性是布爾。我不喜歡DataGrid的CheckboxColumn,所以我使用了一個TemplateColumn,我將它綁定到DataContext的公共屬性上。該項目設計,編譯並運行良好。但是,在設計器中,Visual Studio 2013 Professional強調了紅色的綁定路徑。當我將鼠標懸停在上面時,它顯示「Property Expected」。奇怪的是,這並沒有出現在錯誤列表中,但滾動條卻得到了紅色的「錯誤標記」。另外,如果我使用「標準」CheckboxColumn,VS不會顯示下劃線。WPF綁定設計時間「Property Expected」錯誤
這裏是我的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>
下面是錯誤的截圖:
奇怪的是,VS這個XAML很好,我不想用du e對列的行爲:
<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中的錯誤嗎?
設計者有時僅僅需要被忽略,關閉XAML文件,然後再次打開它,我打賭它會消失 –