Я пытаюсь связать ComboBox
с номером DataContext
.Связывание Combobox не работает, когда используется конвертер
<ComboBox ItemsSource="{Binding Path=Numbers}"
SelectedValue="{Binding Path=CurrentNumber,Mode=TwoWay}">
</ComboBox>
Приведенный выше код работает, но когда я пытаюсь изменить то, как элементы отображаются с помощью преобразователя не реализующий IMultiValueConverter
и MultiBinding
ничего не отображается. Я отлаживал метод, реализующий IMultiValueConverter
, и это не выполнение. В чем может быть проблема?
<ComboBox ItemsSource="{Binding Path=Numbers}"
SelectedValue="{Binding Path=CurrentNumber,Mode=TwoWay}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource MultiUnitConverter}" ConverterParameter="{x:Static enumerations:Quantity.Length}" >
<Binding Path="."/>
<Binding RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window}}" Path="DataContext.CurrentUnit"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Update:
Я попытался следующие вместо ComboBox
, преобразователь обжигают и данные загружены, но не отображается!
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource MultiUnitConverter}" ConverterParameter="{x:Static enumerations:Quantity.Length}" >
<Binding Path="CurrentNumber"/>
<Binding RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window}}" Path="DataContext.CurrentUnit"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
следующие работы: хотя
<TextBlock>
<TextBlock.Text>
<Binding Path="CurrentNumber"></Binding>
</TextBlock.Text>
</TextBlock>
Можете ли вы отобразить * что-нибудь в этом текстовом блоке? Как насчет временного изменения шаблона на ' '? –
@EdPlunkett Я тоже это пробовал. Обновлен вопрос. Нет успеха :( – Vahid
Я бы очень хотел увидеть источник этого конвертера. –