C# 根据文件是否存在刷新控件样式
我有以下用于显示文件的xaml。如果该文件存在于本地计算机上,则它是一个可单击的超链接,否则只是一个普通的文本块C# 根据文件是否存在刷新控件样式,c#,wpf,xaml,C#,Wpf,Xaml,我有以下用于显示文件的xaml。如果该文件存在于本地计算机上,则它是一个可单击的超链接,否则只是一个普通的文本块 <TextBlock Visibility="{Binding FileName, Converter={StaticResource fileExistsConverter}}" Grid.Column="2" TextDecorations="Underline" Margin="5,0,0,0" Foreground="Black" Text="{Binding
<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可以交换样式?参考资料:
<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}" />
Raise NotifyPropertyChanged作为文件名。