WPF数据绑定vs.继承-绑定到基的属性

本文关键字:属性 绑定 数据绑定 vs 继承 WPF | 更新日期: 2023-09-27 17:51:04

设置如下:

基类

public class ToolPathBaseItem
{
    private double _x, _y, _z;
    public double X
    {
        get { return _x; }
        set { _x = value; }
    }
    public double Y
    {
        get { return _y; }
        set { _y = value; }
    }
    public double Z
    {
        get { return _z; }
        set { _z = value; }
    }
    public ToolPathBaseItem(double x, double y, double z)
    {
        _x = x;
        _y = y;
        _z = z;
    }
}

和一些类,如

public class CWToolPathItem : ToolPathBaseItem
{
    private double _nx, _ny, _nz;
    public CWToolPathItem(double x, double y, double z, double nx, double ny, double nz, CWCLRecord record)
        : base(x, y, z)
    {
        _nx = nx;
        _ny = ny;
        _nz = nz;
    }
    public double Nx
    {
        get { return _nx; }
        set { _nx = value; }
    }
    public double Ny
    {
        get { return _ny; }
        set { _ny = value; }
    }
    public double Nz
    {
        get { return _nz; }
        set { _nz = value; }
    }
}

将会有更多的类扩展"ToolPathBaseItem",并且可能会有相同的PropertyNames,如"Nx, Ny,…"。

我有一个DataGrid ItemsSource被绑定到一个

ObservableList<CWToolPathItem>

第一个问题是如何绑定

<DataGridTextColumn Header="X" Binding="{Binding HERETHEBINDING, StringFormat=N3}"/>

到CWToolPathItem的x属性,因为x属性是在基类中定义的。

第二个问题是:如果我有几个类与同名的属性。我如何决定应该使用哪个类?

我希望我已经充分地描述了我的问题。谢谢你的帮助。

WPF数据绑定vs.继承-绑定到基的属性

可以直接绑定基类属性

<DataGridTextColumn Header="X" Binding="{Binding X, StringFormat=N3}"/>