我希望WPF读取C#Object的属性。并将这些属性名称转换为WPF的Label控件。
答案 0 :(得分:1)
StackPanel
不生成项目。它只是Panel
,其功能仅为Layout
。
您正在寻找ItemsControl
:
<ItemsControl ItemsSource="{Binding}">
<!-- ... -->
</ItemsControl>
默认情况下会StackPanel
为ItemsPanel
。
另请注意,将DataContext
设置为类的单个实例不会使ItemsControl
创建任何元素。您需要将ItemsSource
属性设置为IEnumerable
(例如List<MyClass>
等)。
//Window Constructor
public MainWindow()
{
DataContext = New List<MyClass>
{
//.. Items here
};
}
不,WPF不会自动从属性中读取Attribute
。您可以创建一个ViewModel来执行该操作,或者在XAML中对显示名称进行硬编码。