C# 如何在WPF/XAML中以NULL作为初始值附加属性

C# 如何在WPF/XAML中以NULL作为初始值附加属性,c#,wpf,xaml,C#,Wpf,Xaml,我有一个datagrid,我想在datagrid上方的一些文本框中显示当前选定行的一些详细信息。我正在使用Telerik的网格,并将SelectionUnit=混合和SelectionMode=扩展。因此,SelectedItem和SelectedItem始终为空。 我的工作解决方案是,我创建了一个附加属性,如果只选择了一行中的单元格,则该属性提供该行的值;如果选择了多个值中的单元格,则该属性提供虚拟值 网格的该部分定义为: <telerik:RadGridView b:myBehavio

我有一个datagrid,我想在datagrid上方的一些文本框中显示当前选定行的一些详细信息。我正在使用Telerik的网格,并将SelectionUnit=混合和SelectionMode=扩展。因此,SelectedItem和SelectedItem始终为空。 我的工作解决方案是,我创建了一个附加属性,如果只选择了一行中的单元格,则该属性提供该行的值;如果选择了多个值中的单元格,则该属性提供虚拟值

网格的该部分定义为:

<telerik:RadGridView b:myBehavior.CurrentRow="{Binding Path=Data.SelectedRow, Source={StaticResource DataContextProxy}}" Name="myGridView" ...>

这些值在文本框中用以下代码引用:

<TextBox Text="{Binding Path=(b:myBehavior.CurrentRow).TextValue, ElementName=myGridView}" />

如您所见,我必须在viewModel中创建一个绑定并创建一个属性。有没有一种方法可以在不使用viewmodel的情况下初始化附着的属性?通过提供虚拟记录还是空记录


如果我
设置b:myBehavior.CurrentRow=“
我会得到一个异常(无效值)。我需要在这里做什么才能让它运行?

感谢@Clemens为我指明了正确的方向。我的解决方案是在Usercontrols资源中创建一个对象,以避免不必要的viewmodel往返

<repositories:FahrzeugFlatRecord x:Key="myObj" />

然后像这样绑起来:

<telerik:RadGridView b:myBehavior.CurrentRow="{Binding Source={StaticResource myObj}}"...>

文本框保持不变。这个解决方案是必要的,因为我的行为中有一个注册EventListener的PropertyChangedCallback。如果不是这样,则调用绑定该行为就足够了:

<telerik:RadGridView b:myBehavior.CurrentRow="{x:Null}"...>


这里没有确切的答案,但在过去,我发现telerik自己的论坛是一个提出具体telerik问题的相当好的地方Si John,是的,我知道,但我认为这是一个对telerikdo不太具体的问题。在您的情况下,您需要双向绑定吗?不,单向是好的,我建议尝试将绑定表达式更改为单向。但是很抱歉我没有答案