WPF通过XAML从DataContext添加StackPanel子控件

时间:2014-01-15 15:29:55

标签: wpf datacontext stackpanel

我希望WPF读取C#Object的属性。并将这些属性名称转换为WPF的Label控件。

1 个答案:

答案 0 :(得分:1)

StackPanel不生成项目。它只是Panel,其功能仅为Layout

您正在寻找ItemsControl

<ItemsControl ItemsSource="{Binding}">
   <!-- ... -->
</ItemsControl>

默认情况下会StackPanelItemsPanel

另请注意,将DataContext设置为类的单个实例不会使ItemsControl创建任何元素。您需要将ItemsSource属性设置为IEnumerable(例如List<MyClass>等)。

//Window Constructor
public MainWindow()
{
    DataContext = New List<MyClass>
                  {
                      //.. Items here
                  };
}

不,WPF不会自动从属性中读取Attribute。您可以创建一个ViewModel来执行该操作,或者在XAML中对显示名称进行硬编码。