【发布时间】:2021-05-28 15:19:46
【问题描述】:
在主窗口的Canvas 上,我正在绘制一些传感器。
我创建了“传感器”类
public class Sensor
{
public int Id_Sens { get; set; }
public int Type { get; set; }
public UIElement Ui_Element { get; set; }
}
我以编程方式创建了一个带有两列的Grid(一个具有相同宽度和高度的Rectangle(-> 变成一个正方形),在第一个中具有以下样式,在第二个中具有Label) .我将此Grid 与Ui_Element 相关联(Ui_Element = gridMain)。
这很好用。
根据属性Type的值,我想改变Rectangle的半径(并画一个圆)
我创建了以下 XAML
<Style x:Key="Sens_Shape" TargetType="{x:Type Rectangle}">
<Setter Property="Stroke" Value="Black"/>
<Setter Property="StrokeThickness" Value="1"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Type}" Value="0">
<Setter Property="RadiusX" Value="60"/>
<Setter Property="RadiusY" Value="60"/>
</DataTrigger>
</Style.Triggers>
</Style>
如何将Sensor 类的属性Type 绑定到触发器?
编辑 我用 EldHasp 的第 1 点和第 3 点解决了
【问题讨论】:
-
对于将属性绑定到
DataTrigger,您的代码看起来是正确的。但是矩形不是圆形,因此不清楚为什么要在不具有这些属性的对象上设置RadiusX和RadiusY值。请通过提供正确的minimal reproducible example 来改进您的问题,并详细说明该代码的作用、与您想要的有何不同以及具体您需要什么帮助。 -
我忘了告诉矩形具有相同的宽度和高度(所以它是一个正方形)如果我设置 RadiusX = 60 e RadiusY = 60 它变成一个圆圈在我的 WPF 作品中如果我强制使用这些值,请圈出。问题是绑定
-
为数据上下文的属性创建绑定。但是根据您的解释,不清楚您如何创建 UI 元素、布局它们、它们的数据上下文是什么,以及它与原始传感器的集合有何关系。在问题的解释中添加详细信息。
标签: c# wpf xaml data-binding