【发布时间】:2012-12-10 06:52:54
【问题描述】:
我有一个从 Oracle 查询创建的数据集。 我从函数中获取数据表并将其添加到数据集。
现在我尝试将树视图绑定到 ds。 我的代码在后面:
private void init_TreeView()
{
//TreeViewItem parent = PM_TreeView.Items.Add("Requirements");
DataTable dt = DataBases.RunQuery();
dt.TableName = "REQ";
DataSet ds = new DataSet();
ds.Tables.Add(dt);
//ds.Relations.Add("rsParentChild", ds.Tables["REQ"].Columns["RQ_REQ_ID"], ds.Tables["REQ"].Columns["RQ_FATHER_ID"]);
var dataSet = ds;
_rootNodes = dataSet.Tables["REQ"].DefaultView;
_rootNodes.RowFilter = "RQ_FATHER_ID = -1";
this.DataContext = this;
}
和
private DataView _rootNodes;
和
public DataView RootNodes
{
get { return _rootNodes; }
}
还有我的 XAML:
<TreeView x:Name="PM_TreeView" ItemsSource="{Binding RootNodes}" HorizontalAlignment="Left" Height="445" Margin="44.847,68.285,0,0" VerticalAlignment="Top" Width="320" Foreground="{x:Null}" BorderBrush="{x:Null}" Background="#FFBBB6B6" FontFamily="Segoe UI" FontSize="13.333">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding rsParentChild}">
<TextBlock Text="{Binding NodeDescription}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
我的数据表是:
RQ_REQ_ID RQ_FATHER_ID RQ_REQ_NAME
0 -1 REQ
1 0 QC11
但我在树视图上什么都没有 :)
提前 10 倍。
【问题讨论】:
-
你确定你的绑定和查询结果吗?
-
@DJ 我可以把查询结果放在这里,你可以看到这是我得到的确切表,但是我不确定绑定,我尝试了几种绑定方式,这是我最后一次尝试。
-
你能把你的代码从初始化事件移到加载的事件中试试吗?
-
我把它移到了UC的构造函数中,但仍然没有绑定
-
你需要先检查你的绑定。你能把
<TextBock Text={Binding RootNodes}/>放在xaml 中看看它显示了什么吗?
标签: wpf data-binding treeview dataset