다른보기에있는 combox 상자에서 값을 선택하면 텍스트 상자의 값을 동적으로 변경해야합니다. 종속성 속성의 소스를 변경하면 propertychangedEventHandler 값이 변경되지 않습니다. 즉, null로 남으므로 이벤트가 시작되지 않습니다. 결과적으로 텍스트 상자의 텍스트가 변경되지 않습니다. 아래는 코드입니다. 텍스트 상자의 텍스트를 _name 속성에 바인딩했습니다.속성 변경된 이벤트가 실행되지 않습니다. wpf
public partial class Details : UserControl, INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public string name = "";
public Details()
{
InitializeComponent();
Name = Connector.Name;
DataContext = this;
}
public string Name
{
get { return name; }
set
{
name = value; OnPropertyChanged("Name");
}
}
protected void OnPropertyChanged(string s)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(s));
}
}
}
XAML 코드
<StackPanel Orientation="Vertical">
<TextBlock Text="Student Details" VerticalAlignment="Top" HorizontalAlignment="Center" FontSize="16" FontWeight="Bold"> </TextBlock>
<StackPanel Margin="0,5" Orientation="Horizontal" >
<Label MinWidth="100" MaxWidth="110">Name:</Label>
<Border BorderBrush="Gray" BorderThickness="2">
<TextBox Name="nametextbox" Text="{Binding Name,Mode=TwoWay}" Width="auto" MinWidth="100" FontWeight="Black"></TextBox>
</Border>
</StackPanel>
XAML의 바인딩은 어떤 모양입니까? –
이 도움이됩니다 : http : // stackoverflow.com/questions/4237443/datacontext-in-usercontrols – PaulF
당신은'_name'이라는 공개 속성과 _name_ public _field_라는 이름을 가졌습니까? 이것은 명명 규칙을 위반하는 것입니다! – heltonbiker