C# 为什么转换器在绑定时不接收值
我有一个可观察的对象集合绑定到一个tabcontrol,通过将其绑定为itemssource来生成制表符C# 为什么转换器在绑定时不接收值,c#,wpf,binding,tabcontrol,datacontext,C#,Wpf,Binding,Tabcontrol,Datacontext,我有一个可观察的对象集合绑定到一个tabcontrol,通过将其绑定为itemssource来生成制表符 <TabControl x:Name="tabSubmodule" ItemsSource="{Binding}" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TabStripPlacement="Left"&
<TabControl x:Name="tabSubmodule" ItemsSource="{Binding}" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TabStripPlacement="Left">
<TabControl.ItemTemplate>
<DataTemplate>
<!--
<TextBlock Text="{Binding ., Converter={StaticResource NameConverter}}"/>
<Label Content="{Binding ., Converter={StaticResource NameConverter}}"/>
-->
<ContentPresenter Content="{Binding ., Converter={StaticResource NameConverter}}"/>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<ContentPresenter Content="{Binding ., Converter={StaticResource NameConverter}}"/>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
我支持在itemtemplate中触发转换器,并基于对象生成选项卡的名称和其他内容。如您所见,绑定发生在整个对象上(路径)。
我在转换器的ConvertMethod中有一个断点。很好
问题是,当断点从ItemTemplate触发时,该方法的“value”参数始终为null。我尝试将其设置为各种控件(因为对象或字符串期望值-内容、文本属性)。没有什么。
它总是空的
当转换器从Contenttemplate触发时,值不是null,而是预期的对象
有什么建议吗?我通常会在转换器中进行健全性检查,如果值为空,则返回
Binding.DoNothing
。有时转换器会得到一个空值。关键是不要抛出异常。我刚刚尝试了你的代码,在这两种情况下,传递给Convert
的值
方法被设置为预期的对象。我仍然有相同的错误。难以置信的我已经做了几百次了,但从未见过这样的事情。所以内容很好,但标题总是空的?即使从ItemTemplate
中的Binding
中删除Converter
,标题中也没有对象的ToString()。甚至没有调用tostring方法。因为在ItemTemplate中,everytzhing都可以很好地工作,所以这毫无意义