XAML内的条件逻辑

时间:2016-09-01 23:07:48

标签: wpf xaml

我正在尝试编写一个组件,它将通过它将保持的星形图像的数量显示评级,例如将5颗星评为5级。有没有办法可以将这些星的创建定义为for循环在XAML中还是必须在后面的代码中以编程方式执行?我问的基本上是,有没有办法在XAML中包含条件逻辑?

1 个答案:

答案 0 :(得分:1)

  

有没有办法在XAML中包含条件逻辑?

是和否。如果条件满足,您可以使用DataTrigger来执行操作,但这对于您需要执行的操作是不必要的。

我会使用列表控件,并且在项目的内容模板中有一个使用星形作为其源的Image控件。将此列表控件绑定到每个星标有一个项目的集合(即List<int>)。如果有可能有星数的分数,那么这种方法最好 - 使用List<decimal>而不是int,然后调整项目模板以显示小数的适当图像。

或者如果你只有一个包含星数的int属性,那么有两种方法:

  • 拥有一个具有 max stars + 1 DataTriggers的Image控件,并将图像的源设置为适当的图像文件。这是一个有点不理想的方法,因为所有的DataTrigger都会得到评估。
  • 使用带有转换器的Image控件,该转换器根据星号返回相应的源URI。