簡體   English   中英

為什么轉換器在綁定時沒有收到值

[英]why does the converter not receive a value while binding

我有一個綁定到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觸發時,該方法的“值”參數始終為null。 我嘗試將其設置為各種控件(由於對象或字符串期望-內容,文本屬性)。 沒有。 永遠為空

當轉換器從Contenttemplate觸發時,該值不是null,而是預期的對象。

有什么建議么?

我通常在轉換器中進行完整性檢查,如果該值為null,則返回Binding.DoNothing 有時,您的轉換器將獲得空值。 關鍵是不要拋出異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM