У меня проблема с чем-то, что должно быть очень простым сценарием привязки данных. Я хочу связать список предметов. Я хочу создать пользовательский элемент управления, поместить его в шаблон ItemsControl и связать ItemsControl с некоторыми данными. Я совершенно доволен одноразовым связыванием данных, поэтому я надеялся избежать изучения свойств зависимостей и всего связующего с данными для этого простого сценария.
Вот XAML для пользовательского элемента управления:
<TextBlock>Just Something</TextBlock>
И код позади:
namespace TestWindowsPhoneApplication
{
public partial class TestControl : UserControl
{
public TestData SomeProperty { get; set; }
public String SomeStringProperty { get; set; }
public TestControl()
{
InitializeComponent();
}
}
}
MainPage.xaml:
<ItemsControl Name="itemsList" ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<t:TestControl SomeStringProperty="{Binding Path=SomeString}"></t:TestControl>
<!--<TextBlock Text="{Binding Path=SomeString}"></TextBlock>-->
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Вот MainPage.xaml.cs:
namespace TestWindowsPhoneApplication
{
public class TestData
{
public string SomeString { get; set; }
}
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
itemsList.DataContext = new TestData[] { new TestData { SomeString = "Test1" }, new TestData { SomeString = "Test2" } };
}
}
}
Когда я запускаю проект, я получаю сообщение об ошибке "параметр неверен". Я также попытался связать напрямую с элементом SomeProperty = {Binding}, так как это то, что я действительно хочу сделать, но это вызывает ту же ошибку. Если я попытаюсь сделать то же самое с элементом управления TextBlock (закомментированная строка), все будет нормально.
Как я могу реализовать этот простой сценарий?