我尝试通过数据模板的资源绑定数据网格中的值,然后收到警告消息"找不到目标元素的管理FrameworkElement或FrameworkContentElement。 [...]"
示例依赖对象
public class ExampleDO : DependencyObject, INotifyPropertyChanged
{
//Implementation for Interface is given and called in Method RaisePropertyChange
...
public static readonly DependencyProperty TestProperty = DependencyProperty.Register("Test", typeof(object), typeof(ExampleDO), new PropertyMetadata(default(object)));
public Object Test
{
get { return GetValue(TestProperty); }
set { SetValue(TestProperty, value); }
}
private string _testValue = "Hello World";
public string TestValue
{
get { return _testValue; }
set { _testValue = value; RaisePropertyChange(); }
}
}
...以及XAML中的实现:
<DataGrid ...>
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DataTemplate.Resources>
<local:ExampleDO x:Key="DO" Test="{Binding}"/>
</DataTemplate.Resources>
<TextBlock Text="{Binding Source={StaticResource DO}, Path=Test}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
请注意,这是一个非常愚蠢的例子。通常我会将依赖属性中的值设置为DO对象中的其他属性。请注意,我直接编写了文本,这不是现有代码的副本,因此可能包含错误。
C#/ WPF的绑定问题是什么?
谢谢@all!