[英]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.