C# 简单数据绑定问题
我不知道这个简单的绑定有什么问题。 单击第一个或第二个单选按钮时,不显示姓名或姓氏 1) Xaml 3) Person.csC# 简单数据绑定问题,c#,wpf,data-binding,C#,Wpf,Data Binding,我不知道这个简单的绑定有什么问题。 单击第一个或第二个单选按钮时,不显示姓名或姓氏 1) Xaml 3) Person.cs class Person : INotifyPropertyChanged { string firstName; string lastName; public string FirstName { get { return firstName; }
class Person : INotifyPropertyChanged
{
string firstName;
string lastName;
public string FirstName
{
get { return firstName; }
set { firstName = value;
OnPropertyChanged("FirstName");
}
}
public string LastName
{
get { return lastName; }
set { lastName = value;
OnPropertyChanged("LastName");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
非常感谢 您需要在代码中实际设置绑定源代码,为此您需要StackPanel的名称。必须将名称添加到最后一个堆栈面板。第一排的那个
<StackPanel
...
Name="m_panel" />
编辑澄清了要命名的堆栈面板抱歉,它不起作用。顺便说一下,我还添加了绑定源@northTiger,我在我的计算机上验证了这一点。你叫哪个StackPanel?它必须是第二个。哦,在我从文本块中删除Source={StaticResource personInfo}后,它会工作。我的问题仍然是,如果我不添加m_panel.DataContext=p,为什么Source={StaticResource personInfo}不工作;谢谢@northTiger,我相信原因是因为您从未在实际代码中实际更新personInfo值。您是否查看过有关调试输出中绑定错误的任何消息?任何可能有助于解决问题的陈述?
class Person : INotifyPropertyChanged
{
string firstName;
string lastName;
public string FirstName
{
get { return firstName; }
set { firstName = value;
OnPropertyChanged("FirstName");
}
}
public string LastName
{
get { return lastName; }
set { lastName = value;
OnPropertyChanged("LastName");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
<StackPanel
...
Name="m_panel" />
public void onClick1(Object h , RoutedEventArgs arg)
{
p.FirstName = list[0].FirstName;
p.LastName = list[0].LastName;
m_panel.DataContext = p;
}