WPF:最简单的ItemsControl不会显示任何项目

时间:2010-01-25 13:20:10

标签: c# wpf datatemplate itemscontrol itemtemplate

我无法得到ItemControl最简单的想法。我只想填充ItemsControl一堆SomeItem

这是代码隐藏:

using System.Collections.ObjectModel;
using System.Windows;

namespace Hax
{

    public partial class MainWindow : Window
    {

        public class SomeItem
        {
            public string Text { get; set; }
            public SomeItem(string text)
            {
                Text = text;
            }
        }

        public ObservableCollection<SomeItem> Participants
            { get { return m_Participants; } set { m_Participants = value; } }
        private ObservableCollection<SomeItem> m_Participants
            = new ObservableCollection<SomeItem>();

        public MainWindow()
        {
            InitializeComponent();
            Participants.Add(new SomeItem("Hej!"));
            Participants.Add(new SomeItem("Tjenare"));
        }
    }
}

这是XAML:

<ItemsControl Name="itemsParticipants"
    ItemsSource="{Binding Path=Participants}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Border BorderBrush="Red" BorderThickness="2">
                <TextBlock Text="{Binding Text}" />
            </Border>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

我做错了什么?

2 个答案:

答案 0 :(得分:1)

ItemsSource引用一个名为MyParticipants的属性,而它看起来是参与者的代码。

检查“调试输出”视图,您应该看到错误消息。

答案 1 :(得分:1)

确保您的datacontext在xaml中的某处设置为RelativeSource Self。如果您可以发布更多的xaml,那么它可能会有所帮助。

<ItemsControl... DataContext="{Binding RelativeSource={RelativeSource Self}}" >