0

我有以下用于显示文件的 xaml。如果文件存在于本地机器上,它是一个可点击的超链接,否则只是一个普通的文本块。

    <TextBlock Visibility="{Binding FileName, Converter={StaticResource fileExistsConverter}}" Grid.Column="2" TextDecorations="Underline" Margin="5,0,0,0" Foreground="Black" Text="{Binding FileName}" />
    <TextBlock Margin="5,0,0,0" Grid.Column="2" Visibility="{Binding FileName, Converter={StaticResource fileDoesntExistConverter}}">
        <Hyperlink Click="Hyperlink_Click_1">
            <TextBlock Text="{Binding FileName}" />
        </Hyperlink>
    </TextBlock>

这适用于页面加载,但在打开窗口时不会更新,例如下载列出的文件之一。我将如何触发刷新以便 XAML 可以交换样式?

4

1 回答 1

1

资源 :

   <Style x:Key="SwapTemplateStyle" TargetType="ContentControl">

       <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ContentControl">
                    <TextBlock />
                </ControlTemplate>                                                       
            </Setter.Value>
        </Setter>

        <Style.Triggers>
            <DataTrigger Binding="{Binding IsExist}" Value="True">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="ContentControl">                                
                              <Hyperlink>
                                 <TextBlock />
                              </Hyperlink>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </DataTrigger>                
        </Style.Triggers>
   </Style>

在你看来:

        <ContentControl Style="{StaticResource SwapTemplateStyle}" />
于 2012-10-12T21:44:34.423 回答