views:

16

answers:

1
    <inf:WorkspaceContent.Resources>
    <ResourceDictionary>
        <commands:CommandReference x:Key="CompareCommandReference" Command="{Binding CompareCommand}"/>
        <converters:FlowDocumentConverter x:Key="FlowDocConverter"/>
    </ResourceDictionary>
</inf:WorkspaceContent.Resources>

<Grid x:Name="LayoutRoot">
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="0.5*"/>
        <ColumnDefinition Width="0.5*"/>
    </Grid.ColumnDefinitions>
    <RichTextBox x:Name="OrigText" Margin="0,0,8,0" d:LayoutOverrides="Width">
        <FlowDocument>
            <Paragraph><Run Text="The fox jumped over the hill. The fox jumped over the mountain."/></Paragraph>
            <Paragraph><Run Text=""/></Paragraph>
        </FlowDocument>
    </RichTextBox>
    <Button x:Name="OrigFileBrowse" HorizontalAlignment="Center" Margin="0,0,8,2.442" Width="75" Content="Browse" Grid.Row="1" d:LayoutOverrides="Height"/>
    <RichTextBox x:Name="ModifiedText" Grid.Column="1" Margin="8,0,0,0">
        <FlowDocument>
            <Paragraph><Run Text="The fox junped over the hill. The fax jumped over the mountain."/></Paragraph>
        </FlowDocument>
    </RichTextBox>
    <Button x:Name="ModifiedFileBrowse" HorizontalAlignment="Center" Width="75" Content="Browse" Grid.Row="1" Grid.Column="1" Margin="0,0,0,2.442" d:LayoutOverrides="Height"/>
    <Button x:Name="Compare" Command="{StaticResource CompareCommandReference}" HorizontalAlignment="Center" VerticalAlignment="Top" Width="75" Content="Compare" Grid.Row="2" Grid.ColumnSpan="2">
        <Button.CommandParameter>
            <MultiBinding Converter="{StaticResource FlowDocConverter}">
                <Binding Path="Document" ElementName="OrigText"/>
                <Binding Path="Document" ElementName="ModifiedText"/>
            </MultiBinding>
        </Button.CommandParameter>
    </Button>
</Grid>

Above is the XAML for the problem...I have a button which when clicked publishes an event via IEventAggregator in Prism, with the View passed in which is what is above. The converter then fires, and the values look legit. However I want the comparison to fire at the moment the compare command is fired above. But when that happens the object[] has 2 items which are both null...not sure what is causing this?

A: 

This is by design. It will be cached since the underlying FlowDocument reference does not change. The solution is return the items not as a simple object[] but as a newly defined type. Once you do this the values will come back via the arguments when the Compare command is executed.

Aaron