@WPF 세심하신 예제 소스코드에 감탄하고 갑니다. 
![image]()
지금 구현해주신 부분에서 정말 간단하게 추가해 본다면 요렇게 해볼 수 도 있겠습니다.
1. ContentContent 안에 PropertyView 바인딩
<TextBlock.ToolTip>
<Grid>
<!-- 어떻게 설정해야 Tooltip에서 클래스 타입별 UserControl을 설정해서
팝업을 할 수 있을까?-->
<ContentControl Content="{Binding Item.PropertyView}"/>
</Grid>
</TextBlock.ToolTip>
2. BaseClass.cs에 PropertyView 속성 추가
public UserControl PropertyView { get; protected set; }
3. 각각의 PropertyView 유저컨트롤 인스턴스 생성 및 데이터 생성자에 할당
protected override Task OnActivateAsync(CancellationToken cancellationToken)
{
// PropertyView 생성
UCCarPropertyView carPropertyView = new UCCarPropertyView();
UCPersonPropertyView personPropertyView = new UCPersonPropertyView();
Items = new ObservableCollection<ItemViewModel>();
// 객체마다 각각 생성자에 보내주기~
Items.Add(new ItemViewModel(1, new CarClass(11, "소나타", 4, "현대", "승용차", carPropertyView)));
Items.Add(new ItemViewModel(2, new CarClass(12, "싼타페", 4, "현대", "SUV", carPropertyView)));
Items.Add(new ItemViewModel(3, new CarClass(13, "쏘렌토", 4, "현대", "SUV", carPropertyView)));
Items.Add(new ItemViewModel(4, new CarClass(14, "GV80", 6, "현대", "SUV", carPropertyView)));
Items.Add(new ItemViewModel(5, new PersonClass(16, "홍길동", 20, "남성", personPropertyView)));
Items.Add(new ItemViewModel(6, new PersonClass(17, "홍길순", 25, "여성", personPropertyView)));
Items.Add(new ItemViewModel(7, new PersonClass(18, "고길동", 30, "남성", personPropertyView)));
Items.Add(new ItemViewModel(8, new PersonClass(19, "고길순", 28, "여성", personPropertyView)));
return base.OnActivateAsync(cancellationToken);
}
각 모델 생성자에서도 PropertyView에 할당하기
public CarClass(int id, string name, int engine, string brand, string carType, UserControl propertyView)
: base(id)
{
CarName = name;
Engine = engine;
Brand = brand;
CarType = carType;
// 여기 또는 base 에서 할당
// PersonClass에서도 동일하게~
PropertyView = propertyView;
}
결과
타입 A 프로퍼티 창
![image]()
타입 B 프로퍼티 창
