2
我有2個數據庫表:WPF的TreeView(hierarchicaldatatemplate)與2臺
- ProductGroup(組ID,組名,...)
- 產品(產品ID,產品名稱,組ID,...)
現在我想要在TreeView中顯示ProductGroup和Product Table。
我正在使用一個實體模型,我現在不知道如何將2個表綁定到1個TreeView。
我期待着一些答案! THX
我有2個數據庫表:WPF的TreeView(hierarchicaldatatemplate)與2臺
現在我想要在TreeView中顯示ProductGroup和Product Table。
我正在使用一個實體模型,我現在不知道如何將2個表綁定到1個TreeView。
我期待着一些答案! THX
public partial class Form1 : Form
{
private string TextFields=string.Empty;
private string TagFields=string.Empty;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
FillTree();
}
void FillTree()
{
DataSet mds = new DataSet();
DataSet dds = new DataSet();
string ssql;
TextFields = "GroupName";
TagFields = "GroupID";
this.treeView1.Nodes.Clear();
ssql = "select GroupID, GroupName from productgroups ";
mds = DB.GetInstance.GetDataSet(ssql);
if(mds!=null)
insert1LevelNodes(null,mds.Tables[0]);
ssql="select ProductID, ProductName, GroupID from products";
dds = GetDataSet(ssql);
if(dds!=null)
{
for(short i = 0;i<this.treeView1.Nodes.Count;i++)
{
TextFields = "ProductName";
TagFields = "ProductID";
insert1LevelNodes(this.treeView1.Nodes[i],dds.Tables[0]);
}
}
dds.Clear();
dds.Dispose();
}
void insert1LevelNodes(TreeNode parentNode, DataTable dt)
{
string sNodeText = "";
string sNodeTag = "";
string[] aTexts = this.TextFields.Split(',');
string[] aTags = this.TagFields.Split(',');
for(int i=0; i< dt.Rows.Count; i++)
{
sNodeText = "";
sNodeTag = "";
for(int k=0;k<dt.Columns.Count;k++)
{
for(short j=0;j<aTexts.Length;j++)
if(aTexts[j].Equals(dt.Columns[k].ColumnName))
sNodeText+=dt.Rows[i][k].ToString() + ":";
for(short j=0;j<aTags.Length;j++)
if(aTags[j].Equals(dt.Columns[k].ColumnName))
sNodeTag+=dt.Rows[i][k].ToString() + ",";
}
if(sNodeText.Length>0) sNodeText = sNodeText.TrimEnd(':');
if(sNodeTag.Length>0) sNodeTag = sNodeTag.TrimEnd(',');
if(sNodeText==string.Empty) return;
TreeNode newNode=new TreeNode(sNodeText);
newNode.Tag = sNodeTag;
if(parentNode==null)
treeView1.Nodes.Add(newNode);
else
parentNode.Nodes.Add(newNode);
}
}
DataSet GetDataSet(string ssql)
{
/// Your function to get Dataset from your Database
}
}
關於WPF的問題,而不是WinForms。 – Dennis
1)http://mattgemmell.com/2008/12/08/what-have-you-tried/ 2)有你在這裏看到的代碼示例:http://msdn.microsoft.com /en-us/library/system.windows.hierarchicaldatatemplate.aspx – Dennis
我不止一次訪問過這個鏈接,但我沒有得到它。我是否需要爲每個表創建一個類?沒有更好的方式直接綁定它沒有額外的類? – user1627376
爲什麼你想避免「額外的班級」?你用'entity-framework'標籤標記了你的問題。所以,你已經有了這些課程,不是嗎? – Dennis