【发布时间】:2011-01-09 12:40:47
【问题描述】:
我想要做的是在一个窗口中填充两列。此列将具有全局变量的名称及其路径。我在窗口中显示我需要的内容时遇到问题。
<TabItem Header="Global Variables" GotFocus="GlobalVariablesTab_GotFocus">
<dc:TreeListView Name="tvwGlobalVariables" dc:ColumnLayoutManager.Enabled="True" >
<dc:TreeListView.Columns>
<!--First Column. -->
<dc:StdGridViewColumn Header="Variable" Width="200" >
<dc:StdGridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock TextTrimming="CharacterEllipsis"/>
</DataTemplate>
</dc:StdGridViewColumn.CellTemplate>
</dc:StdGridViewColumn>
<!-- Second Column-->
<dc:StdGridViewColumn Header="Result" dc:ColumnRange.IsFillColumn="True"/>
</dc:TreeListView.Columns>
</dc:TreeListView>
</TabItem>
这是包含我需要填充的区域的选项卡。第一列是名称,第二列是路径。我也可能遗漏了一些东西。
private void GlobalVariablesTab_GotFocus(object sender, RoutedEventArgs e)
{
lvGlobals.Items.Clear();
sman = SchemaManager.SchemaManager.GetInstance();
IEnumerator enumerator = sman.GetGlobalVariableEnumerator();
while (enumerator.MoveNext())
{
DictionaryEntry entry = (DictionaryEntry) enumerator.Current;
ListViewItem lvi = new ListViewItem();//new string[] {entry.Key.ToString(), entry.Value.ToString()});
lvi.Tag = entry.Key.ToString() + entry.Value.ToString();
}
}
目前我有 lvi 持有这两个部分,但我需要一个部分进入第一列,另一部分到另一列。如果我不需要它,我不打算保留 lvi。无论哪种方式,我都需要在第一列中显示entry.key,在第二列中显示entry.value。有什么想法吗?
【问题讨论】:
-
如果有人需要更多信息,请告诉我,我添加了我认为相关的内容,但我对这一切了解不多,所以这只是一个假设。
-
我可以给你代码在常规列表视图中显示两列。很难判断您的代码有什么问题,因为您使用的专有 TreeListView 甚至可能无法正常工作。但只是通过查看您的代码进行猜测,我发现了两个潜在问题。首先,如果您为 CellTemplates 使用数据模板,您希望使用数据绑定而不是与 ListViewItems 混淆。在 ListViewItems 上设置 Tag 将不会显示任何内容。
-
我只能显示两列我想写给那些列,你能解释一下怎么做吗?
标签: c# wpf data-binding treeviewitem treelistview