0

我有一个绑定到 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 中触发 Converter 并根据对象生成选项卡的名称和其他一些东西。如您所见,绑定发生在整个对象上(路径)。我在转换器的 ConvertMethod 中有一个断点。它触发良好。

问题是,当从 ItemTemplate 触发断点时,方法的“值”参数始终为空。我尝试将其设置为各种控件(因为对象或字符串期望 - 内容、文本属性)。没有什么。它始终为空

当转换器从 Contenttemplate 触发时,该值不是 null,而是预期的对象。

有什么建议么?

4

1 回答 1

0

我通常在我的转换器中进行健全性检查,如果值为 null,则返回Binding.DoNothing。有时你的转换器会得到一个空值。关键是不要抛出异常。

于 2013-08-17T21:59:45.980 回答