WPF: многосвязные и встроенные коллекции

#c# #wpf #gridview #data-binding #multibinding

#c# #wpf #просмотр сетки #привязка данных #многосвязные

Вопрос:

У меня есть следующая привязка в моем GridViewColumn

  <GridViewColumn Header="Text" Width="40">
     <GridViewColumn.CellTemplate>
         <DataTemplate>
            <TextBlock TextAlignment="Center">
              <Hyperlink NavigateUri="{Binding Path=Link}" RequestNavigate="Hyperlink_OnRequestNavigate">                                                                                                          
                  <MultiBinding Converter="{StaticResource LinkDisplayConverter}">    
                      <Binding Path="Property1"/> 
                      <Binding Path="Property2"/> 
                  </MultiBinding>                                                                                                        
              </Hyperlink>  
            </TextBlock>
         </DataTemplate>
  </GridViewColumn.CellTemplate>
  

Я получаю ошибку времени выполнения (System.Windows.Разметка.Исключение XamlParseException), в котором говорится, что многосвязи не поддерживаются встроенными коллекциями. Однако мне нужны свойства Property1 и Property2 в моем конвертере. Я нашел похожий вопрос, но не смог сопоставить его с моим вариантом использования.

Есть идеи?

Комментарии:

1. что у вас есть в вашем конвертере?

2. Я обновил свой вопрос. На самом деле я получаю ошибку времени выполнения (исключение). Мне неважно, что у меня есть в моем конвертере — у меня простой (см. Выше) и выдает ошибку.

3. Конвертер не имеет значения.

Ответ №1:

Гиперссылка может содержать только встроенные элементы, например, Run:

 <Hyperlink NavigateUri="{Binding Link}" RequestNavigate="Hyperlink_OnRequestNavigate">                                                                                                          
    <Run>
        <Run.Text>
            <MultiBinding Converter="{StaticResource LinkDisplayConverter}">    
                <Binding Path="Property1"/> 
                <Binding Path="Property2"/> 
            </MultiBinding>                                                                                                        
        <Run.Text>
    <Run>
</Hyperlink>