WPF 数据绑定与继承 - 绑定到 属性 of base
WPF Data Binding vs. Inheritance - Bind to property of base
我有以下设置。
基地class
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;
}
}
还有几个class喜欢
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; }
}
}
会有更多 class 扩展 "ToolPathBaseItem" 并且可能具有相同的 属性 名称,例如 "Nx, Ny,..."。
我有一个 DataGrid,它的 ItemsSource 绑定到
ObservableList<CWToolPathItem>
第一个问题是:
我怎样才能绑定
<DataGridTextColumn Header="X" Binding="{Binding HERETHEBINDING, StringFormat=N3}"/>
到CWToolPathItem的X-属性,因为X-属性定义在基class.
第二个问题是:
如果我有多个 class 具有相同名称的属性。我如何决定应该使用哪个 class?
我希望我已经充分描述了我的问题。预先感谢您的帮助。
可以直接绑定Base class 属性
<DataGridTextColumn Header="X" Binding="{Binding X, StringFormat=N3}"/>
我有以下设置。
基地class
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;
}
}
还有几个class喜欢
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; }
}
}
会有更多 class 扩展 "ToolPathBaseItem" 并且可能具有相同的 属性 名称,例如 "Nx, Ny,..."。
我有一个 DataGrid,它的 ItemsSource 绑定到
ObservableList<CWToolPathItem>
第一个问题是: 我怎样才能绑定
<DataGridTextColumn Header="X" Binding="{Binding HERETHEBINDING, StringFormat=N3}"/>
到CWToolPathItem的X-属性,因为X-属性定义在基class.
第二个问题是: 如果我有多个 class 具有相同名称的属性。我如何决定应该使用哪个 class?
我希望我已经充分描述了我的问题。预先感谢您的帮助。
可以直接绑定Base class 属性
<DataGridTextColumn Header="X" Binding="{Binding X, StringFormat=N3}"/>