MultiBinding con Prisma / RibbonControl causando convertidor para precoz de incendios

StackOverflow https://stackoverflow.com/questions/3620807

  •  26-09-2019
  •  | 
  •  

Pregunta

    <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>

El anterior es el XAML para el problema ... Tengo un botón que cuando se hace clic publica un evento a través de IEventAggregator en Prisma, con la vista en la que pasó es lo que está por encima. El convertidor dispara entonces, y los valores aspecto de fiar. Sin embargo, quiero la comparación de fuego en el momento en el comando comparación se dispara por encima. Pero cuando esto sucede el objeto [] tiene 2 artículos que son tanto nula ... no está seguro de lo que está causando esto?

¿Fue útil?

Solución

Esto es por diseño. Se almacena en caché ya que la referencia FlowDocument subyacente no cambia. La solución es devolver los artículos no como un objeto sencillo [], sino como un tipo que acaba de definir. Una vez hecho esto, los valores van a volver a través de los argumentos cuando se ejecuta el comando de comparación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top