如何将字段绑定到仪表控件?

How to bind a field to a gauge control?

我已经从这个 class https://github.com/JohanLarsson/GaugeBox 添加了一个 WPF 仪表控件,但我不确定如何将控件连接到一个声明为 double degreeOutput 类型的字段后面的代码。

我的目标是将 degreeOutput 绑定到仪表控件,并使来自 degreeOutput 的值相应地更新仪表。

我在设置控件时遵循的过程是:

1)将控件添加到用户控件的xaml布局中并声明命名空间 xmlns:gauges="clr-namespace:Gauges;assembly=Gauges"

2)设置值属性为Value="{Binding degreeOutput}"

3)运行申请,(但仪表没有按照 degreeOutput)

输出度数

有谁知道我在将控件绑定到我的学位领域时缺少哪一步?

这是仪表控件的 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;

一般来说,您不能绑定到 WPF 中的 字段 (请参阅 this SO question 的答案)。

尝试将 degreeOutput 更改为 public 属性。这足以将初始值输入仪表控件。

如果您还希望仪表控件所做的更改反馈到您的 属性,那么包含 属性 的 class 也必须实现 INotifyPropertyChanged