4
그래서 TabControl을 프로젝트 목록에 바인드했습니다 (각 탭은 하나의 프로젝트 임). 각 탭의 내용은 프로젝트 직원의 목록이있는 DataGrid이며 잘 작동합니다. 이제 DataGrid에서 현재 선택된 직원에 대한 정보를 보여 드리고자합니다. MainWindow.xaml 파일 : 여기에 몇 가지 코드는WPF DataGrid에서 SelectedItem 바인딩하기
<Window.Resources>
<DataTemplate x:Key="ItemTemplate">
<TextBlock Text="{Binding Name}" />
</DataTemplate>
<DataTemplate x:Key="ContentTemplate">
<DataGrid ItemsSource="{Binding Employees}" SelectedItem="{Binding SelectedEmployee, Mode=TwoWay}" SelectionMode="Extended" SelectionUnit="FullRow" Name="employeesList">
</DataGrid>
</DataTemplate>
</Window.Resources>
이상 단순히 라벨을 작성하여이 바인딩을 테스트 할 :
<Label Name="emp" Content="{Binding SelectedEmployee}"></Label>
및 MainWindowViewModel :
public Employee SelectedEmployee { get { return selectedEmployee; }
set
{
if (selectedEmployee != value)
{
selectedEmployee = value;
NotifyPropertyChanged("SelectedEmployee");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(String info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
WPF의 초보자입니다. 몇 가지 팁을 읽었지만 도움이되지 않습니다. 'emp'레이블에는 아무 것도 표시되지 않습니다. 내가 뭘 놓치고 있니?
당신은 당신의 속성이 변경되었음을 통지하지 않는
감사합니다. 저의 실수였습니다. "SelectedEmployee"라고 쓰고 싶었습니다. 나는 그것을 바꿨지 만 그것은 도움이되지 못했다. – kcz
몇 가지 테스트를했지만 효과가있는 것처럼 보이지만 DataGrid 템플릿을 보유하고있는 xaml이 없습니다. –