我已经从这个类https://github.com/JohanLarsson/GaugeBox添加了一个WPF规范控件,但我不确定如何将控件连接到后面代码中声明的double degreeOutput
类型的字段。
我的目标是将degreeOutput
绑定到仪表控件上,并使degreeOutput
的值相应地更新仪表。
我在设置控件时遵循的过程是:
1)将控件添加到用户控件的xaml布局并声明命名空间
xmlns:gauges="clr-namespace:Gauges;assembly=Gauges"
2)将value属性设置为Value="{Binding degreeOutput}"
3)运行应用程序,(但是仪表不会按照更新
学位读数从degreeOutput
)输出
有没有人知道在将控件绑定到学位字段时我缺少哪一步?
这是guage控件的xaml布局:
<gauges:Gauge x:Name="Gauge"
Grid.Row="0"
Margin="13,18,134,134"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Marker="{Binding Marker}"
Maximum="{Binding Max}"
Minimum="{Binding Min}"
Placement="{Binding Placement}"
ShowLabels="{Binding ShowLabels}"
ShowMajorTicks="{Binding ShowTicks}"
ShowTrack="{Binding ShowTrack}"
TickFrequency="{Binding TickFrequency}"
Value="{Binding degreeOutput}" RenderTransformOrigin="0.5,0.5">
<gauges:Gauge.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="-89.868"/>
<TranslateTransform/>
</TransformGroup>
</gauges:Gauge.RenderTransform>
<gauges:Gauge.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<LinearGradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Offset="0.0" Color="Red" />
<GradientStop Offset="0.10" Color="Red" />
<GradientStop Offset="0.10" Color="Green" />
<GradientStop Offset="0.90" Color="Green" />
<GradientStop Offset="0.90" Color="Red" />
<GradientStop Offset="1.0" Color="Red" />
</GradientStopCollection>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</gauges:Gauge.Background>
</gauges:Gauge>
声明degreeOutput
的背后的代码:
private double degreeOutput;
答案 0 :(得分:1)
一般来说,您无法绑定到WPF中的字段(请参阅this SO question的答案)。
尝试将degreeOutput
更改为公共财产。这足以将初始值输入仪表控件。
如果您还希望由仪表控件进行更改以反馈到您的属性中,则包含该属性的类也必须实现INotifyPropertyChanged
。