是否可以在设计时在运行时使用绑定的树视图中显示数据?

时间:2014-11-11 16:34:06

标签: wpf vb.net xaml

是否可以在设计时在我的树视图中显示某些内容以及实现它的最佳方法是什么?

运行时运行良好,并显示我想要的数据。但是,我希望在设计时比树视图的空白区域更方便。

谢谢。

树视图如下所示:

       <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"

1 个答案:

答案 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

此外: Simulating data in design mode in Microsoft Blend