我似乎无法弄清楚如何摆脱我遇到的绑定错误。
但是,我必须在下面的两种情况下都规定绑定工作正常,但我似乎总是在XAML中收到警告错误。
下面的代码不会在XAML中创建错误,正如我上面所说,绑定可以正常工作。绑定到dDate
可以正常工作。
<DataGridTextColumn Width="50" Header="Day"
SortMemberPath="dDate" IsReadOnly="True"
Binding="{Binding Path=dDate,
StringFormat={}{0:ddd}}" />
但是,如果我使用DataGridTemplateColumn
并绑定到dDate
,我会在XAML中收到错误,但如前所述,所有内容都应该绑定。
<DataGridTemplateColumn Width="50" Header="Day"
SortMemberPath="dDate" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock
Text="{Binding Path=dDate,
StringFormat={}{0:ddd}}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
我得到了这个错误,
我不确定我是否应该真正尝试解决为什么在绑定工作时发生此错误,但我似乎无法放手。
为什么会发生这种情况?
编辑:我应该提到这也发生在使用DataGridTemplateColumn
的任何其他列中。
答案 0 :(得分:3)
您可以使用DataType定义使用的绑定类型。
<DataGridTemplateColumn.CellTemplate>
<DataTemplate DataType="local:MyType">
<TextBlock Text="{Binding MyProperty}"></TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
或者您可以使用相对来源
<TextBlock Text="{Binding DataContext.MyProperty, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGridRow}}"></TextBlock>
或者您可以使用设计时间
<TextBlock Text="{Binding MyProperty}" d:DataContext="{d:DesignInstance local:MyType}"></TextBlock>
答案 1 :(得分:1)
如果绑定在运行时工作,则无需担心。
由于某种原因,最有可能ReSharper
添加这些波浪线。您可能需要学会使用它们或卸载ReSharper
:)