Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么转换器在绑定时不接收值_C#_Wpf_Binding_Tabcontrol_Datacontext - Fatal编程技术网

C# 为什么转换器在绑定时不接收值

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,通过将其绑定为itemssource来生成制表符

    <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都可以很好地工作,所以这毫无意义