绑定到边距作为样式的setter值

问题描述 投票:0回答:1

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

我认为这将是以下代码的简单情况(它没有绑定工作)。

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路径错误:'object'''Double'(HashCode = 1072693248)'上找不到'LabelMargin'属性。 BindingExpression:路径= LabelMargin; DataItem ='Double'(HashCode = 1072693248); target元素是'NumericAxisLabel'(Name =''); target属性是'Margin'(类型'Thickness')

c# wpf mvvm data-binding
1个回答
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>
© www.soinside.com 2019 - 2024. All rights reserved.