Это должно быть очень простое решение, но поиск через Интернет кажется несколько разных способов сделать привязку, и NONE, похоже, действительно работает.Чрезвычайно простое связывание серебристого света не работает
Я создал простое приложение с кнопкой, текстовым полем и списком. Пользователь добавляет текст в текстовое поле, нажимает «Добавить», и я хочу, чтобы текст отображался в списке. Обратите внимание, что кнопка «Добавить» создаст Личность с первым именем текста в текстовом поле и фамилию «Джонс». Это просто для того, чтобы выяснить, как получить привязку к реальной работе. У меня есть ObservableCollection, но я не могу даже понять, как помещать ресурс в объект внутри самого класса. Возможно ли это? мне нужно создать отдельный класс для привязки?
Вот полный XMAL
<UserControl x:Class="simpleBinding.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:z="clr-namespace:simpleBinding"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Canvas x:Name="LayoutRoot" Background="White">
<Button Name="_b" Content="Add" Height="23" HorizontalAlignment="Left" VerticalAlignment="Top" Width="58" Canvas.Left="90" Canvas.Top="5" Click="OnAdd" />
<TextBox Name="_tb" Canvas.Left="12" Canvas.Top="4" Height="24" Width="72"></TextBox>
<ListBox Name="_list" Canvas.Left="18" Canvas.Top="41" Height="98" Width="190" />
</Canvas>
и вот полный код позади
namespace simpleBinding
{
public partial class MainPage : UserControl
{
public ObservableCollection<Person> PersonList = new ObservableCollection<Person> ();
public MainPage()
{
InitializeComponent();
}
private void OnAdd(object sender, RoutedEventArgs e)
{
PersonList.Add(new Person(_tb.Text, "Jones"));
}
}
public class Person
{
public string FirstName {private set; get;}
public string LastName {private set; get; }
public Person(string fName, string lName)
{
FirstName = fName;
LastName = lName;
}
}
}
спасибо за любую помощь, Крисом
Вы не имеют Binding логики в вашем XAML. Посмотрите на это в первую очередь. – aqwert
Да, сначала посмотрите свой XAML, у них нет привязки к ListBox и DataContext.same, как сказал @aqwert. – Ravuthasamy