绑定到边距作为样式的设置值

时间:2018-09-03 05:23:52

标签: c# wpf mvvm data-binding

我正在尝试将图表轴标签的边距绑定到属性。

我认为这是下面代码的简单情况(无需绑定即可工作)。

XAML

           <DVC:LinearAxis Orientation="X" Interval="0.5" ShowGridLines="True">
                <DVC:LinearAxis.AxisLabelStyle>
                    <Style TargetType="{x:Type DVC:AxisLabel}">
                        <Setter Property="Margin" Value="{Binding LabelMargin}" />
                    </Style>
                </DVC:LinearAxis.AxisLabelStyle>
            </DVC:LinearAxis>

查看模型

private Thickness _labelMargin;

public Thickness LabelMargin
        {
            get { return _labelMargin; }
            set { SetPropertyAndNotify(ref _labelMargin, value); }
        }

这对利润没有影响,关于我在做什么错的任何想法吗?

编辑:我在输出窗口中遇到以下错误

System.Windows.Data错误:40:BindingExpression路径错误:在“对象”“ Double”(HashCode = 1072693248)”上找不到“ LabelMargin”属性。 BindingExpression:Path = LabelMargin; DataItem ='Double'(HashCode = 1072693248);目标元素是'NumericAxisLabel'(Name ='');目标属性是“保证金”(类型为“厚度”)

1 个答案:

答案 0 :(得分:1)

那这样的事情呢?

<DVC:LinearAxis Orientation="X" Interval="0.5" ShowGridLines="True">
   <DVC:LinearAxis.AxisLabelStyle>
      <Style TargetType="{x:Type DVC:AxisLabel}">
         <Setter Property="Margin" Value="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DVC:LinearAxis}}, Path=DataContext.LabelMargin}" />
      </Style>
   </DVC:LinearAxis.AxisLabelStyle>
</DVC:LinearAxis>