Search code examples
c#wpfgridviewdata-bindingmultibinding

WPF: Multibind and Inline Collections


I have the following binding in my 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>

I get an runtime error (System.Windows.Markup.XamlParseException) saying that Multibindings are not supported by Inline Collections. I need, however, Property1 and Property2 in my converter. I found a similar question but I was not able to match it to my use case.

Any ideas?


Solution

  • A Hyperlink can only contain Inline elements, e.g. a 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>