是否可以在设计时在我的树视图中显示某些内容以及实现它的最佳方法是什么?
运行时运行良好,并显示我想要的数据。但是,我希望在设计时比树视图的空白区域更方便。
谢谢。
树视图如下所示:
<TreeView x:Name="tvConfig" Width="400" Height="300" >
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type demo:TvItemsSource}" ItemsSource="{Binding Path=Items}">
<StackPanel Orientation="Horizontal">
<Image></Image>
<TextBlock Text="{Binding Name}"></TextBlock>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
并使用这个类:
Public Class TvItemsSource
Public Property Items() As New List(Of TvItemsSource)
Public Property Name() As String
Public Sub New(Name As String)
Me.Name = Name
End Sub
End Class
我使用以下代码生成了一个小的运行时数据:
Private _source As TvItemsSource
Private Sub LoadData()
_source = New TvItemsSource("Root")
_source.Items.Add(New TvItemsSource("Item 1"))
_source.Items.Add(New TvItemsSource("Item 2 "))
Dim ParentItem1 = New TvItemsSource("Parent 1")
ParentItem1.Items.Add(New TvItemsSource("Enfant 1"))
Dim ParentItem2 = New TvItemsSource("Parent 2")
ParentItem2.Items.Add(New TvItemsSource("Enfant 2"))
ParentItem1.Items.Add(ParentItem2)
_source.Items.Add(ParentItem1)
tvConfig.ItemsSource = _source.Items
End sub
编辑:在树视图的xaml中,我添加了应用程序的xmlns命名空间,以将数据类型声明为:
xmlns:demo="clr-namespace:demo"
答案 0 :(得分:0)
我通过使用以下声明为我的项目找到了理想的解决方案:
Dim IsDesignMode As Boolean = DesignerProperties.GetIsInDesignMode(New DependencyObject())
IsDesignMode变量确实返回true,因此在&#34;内容&#34;上绑定了一个列表框项源。属性将显示&#34;设计模式&#34;设计师和&#34;生产&#34;跑步时的物品。
If IsDesignMode Then
For I = 1 To 10
Content.Add("DesignMode " & I)
Next
Else
Content.Add("Production 1")
Content.Add("Production 2")
Content.Add("Production 3")
End If
还有其他方法可以做到。
相关: SO: What approaches are available to dummy design-time data in WPF