wpf - Xaml - 'Calculated Value' - 这可以完成吗?

标签 wpf xaml

我有以下 Xaml,用于将一些数据绑定(bind)到图表控件:

<vf:DataSeries 
  AxisYType="Secondary"  
  RenderAs="Line" 
  DataSource="{Binding CdTeThicknessList}" 
  XValueType="DateTime" 
  MarkerEnabled="False" 
  Color="Navy" 
  LegendText="Beta CdTe - Std. Dev.">
    <vf:DataSeries.DataMappings>
    <vf:DataMapping MemberName="XValue" Path="ReadTime"></vf:DataMapping>
    <vf:DataMapping MemberName="YValue" Path="BetaThicknessStdDev"></vf:DataMapping>
    <vf:DataMapping MemberName="Enabled" Path="PointEnabled"></vf:DataMapping>
    </vf:DataSeries.DataMappings>
</vf:DataSeries>

我的问题与设置“Enabled”属性有关。需要根据“BetaThicknessStdDev”是否包含值(如果包含,则为 True)将其设置为 True 或 False。 “PointEnabled”不是 CdTeThicknessList (数据源)的属性,我不想让它成为一个属性。 XAML 中是否有一种简单的方法可以根据“BetaThicknessStdDev”是否包含值将其设置为 true?

最佳答案

是的,有办法。很简单,也许没那么简单。通常,您会使用转换器来处理此类事情。 (IValueConverter)

您的 XAML 看起来像这样:

IsEnabled="{Binding Path=BetaThicknessStdDev, Converter={StaticResource ThicknessToVisibilityConverter}}"

你的转换器看起来像这样:

Public Class ThicknessToVisibilityConverter
   Implements IValueConverter

   Public Function Convert(value As Object, targetType As System.Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.Convert

      If value is Nothing Then
         Return True
      Else
         Return False
      End If
   End Function

   Public Function ConvertBack(value As Object, targetType As System.Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.ConvertBack
      Return Nothing
   End Function
End Class

您还需要将以下内容放入您的窗口(或用户控件)中:

<Window.Resources>
    <local:ThicknessToVisibilityConverter x:Key="ThicknessToVisibilityConverter" />
</Window.Resources>

..其中 local 在您的 xaml 中定义为包含自定义转换器的项目的命名空间。

xmlns:local="clr-namespace:MyProject"

关于wpf - Xaml - 'Calculated Value' - 这可以完成吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9081377/

相关文章:

wpf - 当前在 WPF 中编译像素着色器的最佳实践?

wpf - 将 WMF(Windows 图元文件)或任何其他矢量文件导入 silverlight 项目

wpf - XAML TextBlock 和运行绑定(bind)

c# - 如何处理硬件按钮。在 UWP 中按下后退?

c# - ScrollViewer 不滚动

c# - 制作一个完全透明的矩形(窗口中的一个洞)WPF

wpf - 如何计算wpf控件的总渲染时间?

c# - ViewModel 中 UIElements 的 UserControl 会破坏 MVVM?

xaml - WinRT和Light主题

xaml - 如何将 View 与ViewModel或ViewModel的多个DataTemplates关联?