如果在XAML中有条件

joe*_*nny 7 wpf xaml

是否可以通过XAML为wpf实现if条件,如果是,请提供if条件以检查xaml中的.net框架版本.

我正在为Visual Studio 2010和2008分享xaml,我想为vs2010执行特定的代码片段并为vs2008隐藏相同的代码片段

She*_*dan 7

是的,他们被称为Triggers.有不同的类型,它们会对数据绑定的数据值,触发的事件或用户界面控件的状态的变化作出反应.您可以在代码项目的WPF中的触发器中找到一篇描述它们的好文章.

编辑>>>

我刚刚在您的问题中添加了您的评论,我不得不说将问题的这么重要的部分放入评论中并不是一个好主意......因此,到目前为止,大多数答案都没有回答您的实际问题.出于这个原因,我已经低估了你的问题.

回答你的实际问题,不,我不相信你可以使用条件XAML来识别Visual Studio版本之间的差异.如果你告诉我们的目标是你到底是什么,那么我们可能仍然能够提供帮助.


Jer*_*rry 5

看一下在XAML中使用Converter的情况。使用Converter,您可以通过执行代码在XAML中做出决策。例如,这将使我的按钮在某些情况下可见:

XAML

<Button
    x:Name="btnMyButton"
    Margin="2,0"
    Command="{Binding Model.MyButtonCommand}"
    Content="My Text"
    Visibility="{Binding Model.IsShowMode, Converter={StaticResource BoolToVisibilityConverter}, ConverterParameter=False}"
/>
Run Code Online (Sandbox Code Playgroud)

C#类

public class BoolToVisibilityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, 
    object parameter, CultureInfo culture)
   {
    // Do the conversion 
   }

   public object ConvertBack(object value, Type targetType, 
    object parameter, CultureInfo culture)
      {
      // UnDo conversion
  }
}
Run Code Online (Sandbox Code Playgroud)