gpt4 book ai didi

c# - DataGridTemplateColumn 和绑定(bind)错误? MVVM

转载 作者:行者123 更新时间:2023-12-03 10:54:32 25 4
gpt4 key购买 nike

我似乎无法弄清楚如何摆脱我遇到的绑定(bind)错误。

但是,我必须规定绑定(bind)在以下两种情况下都能正常工作,但我似乎总是在 XAML 中收到警告错误。

下面的代码不会在 XAML 中创建错误,正如我上面所说,绑定(bind)可以正常工作。绑定(bind)到 dDate正常工作。

   <DataGridTextColumn Width="50" Header="Day" 
SortMemberPath="dDate" IsReadOnly="True"
Binding="{Binding Path=dDate,
StringFormat={}{0:ddd}}" />

但是,如果我使用 DataGridTemplateColumn并绑定(bind)到 dDate ,我在 XAML 中收到错误,但如前所述,一切都按应有的方式绑定(bind)。
<DataGridTemplateColumn Width="50" Header="Day"
SortMemberPath="dDate" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock
Text="{Binding Path=dDate,
StringFormat={}{0:ddd}}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

我得到这个错误,

enter image description here

我不确定我是否真的应该尝试弄清楚为什么在绑定(bind)工作时会发生此错误,但我似乎不能放手。

为什么会发生这种情况?

编辑:我应该提到,这也发生在使用 DataGridTemplateColumn 的任何其他列中。 .

最佳答案

您可以使用 DataType 来定义使用的绑定(bind)类型。

<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>

关于c# - DataGridTemplateColumn 和绑定(bind)错误? MVVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43657606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com