嗨我有一个Observable类型包的包列表集合。每个数据包由3个不同的可观察类型数据集合组成。这3个不同的可观察集合是头类,帧类和尾类。我试图提取类型数据的值,并将它们放在datagrid中的一列下。框架和尾部相同。但是,我如何在一列下进行observableCollection数据的绑定?
namespace macframe
{
public class Packet
{
private ObservableCollection<Packet> items;
private Header header;
private Frame frame;
private Tail tail;
public Packet(Header header, Frame frame, Tail tail)
{
this.header = header;
this.frame = frame;
this.tail = tail;
items = new ObservableCollection<Packet>();
}
}
public class Data
{
private String sDatavalue;
public Data(String datavalue)
{
this.sDatavalue = datavalue;
}
public string datavalue
{
get { return sDatavalue; }
set { sDatavalue = datavalue; }
}
}
public class Header
{
private ObservableCollection<Data> headerItems;
public Header()
{
headerItems = new ObservableCollection<Data>();
}
public ObservableCollection<Data> header
{ get { return headerItems; } }
}
public class Frame
{
private ObservableCollection<Data> frameItems;
public Frame()
{
frameItems = new ObservableCollection<Data>();
}
public ObservableCollection<Data> frame
{ get { return frameItems; } }
}
public class Tail
{
private ObservableCollection<Data> tailItems;
public Tail()
{
tailItems = new ObservableCollection<Data>();
}
public ObservableCollection<Data> tail
{ get { return tailItems; } }
}
}
<Window x:Class="macframe.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DataGrid Name="dgrid">
</DataGrid>
</Grid>
答案 0 :(得分:0)
如果我的意图正确,您希望单个网格显示三个不同的集合,每个集合独立于其他两个集合。也就是说,削减事项简短,不可能。
您可以将网格绑定到仅一个源(设置ItemsSource属性),并且必须是一个集合类型才能使其工作(WPF自动生成一个CollectionView周围的属性绑定到ItemsControls)。
如果有办法以平面方式关联您的数据,您应该这样做。但对我来说,看起来你的目的是显示分层数据...请提供一个简短的样本记录列表(假数据已经足够了),这样我们就可以看到你希望你的网格看起来像什么。