سؤال

لا يمكنني الحصول على أبسط فكرة عن 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>

ما الخطأ الذي افعله؟

هل كانت مفيدة؟

المحلول

تأكد من تعيين DataContext الخاص بك على أقارب Selfource في مكان ما في XAML الخاص بك. إذا تمكنت من نشر المزيد من XAML الخاص بك ، فقد يكون ذلك مفيدًا.

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

نصائح أخرى

تشير extssource إلى خاصية تسمى MyPartispants ، في حين أن الكود الذي يبدو أنه مشارك.

تحقق من عرض إخراج التصحيح ، ويجب أن ترى رسائل الخطأ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top