question에 대한 후속 조치로 Thiado de Arruda이 게시되었습니다. 간단히 말해서, 그는 generic.xaml 파일에 DataTemplate을 갖고 싶었지만 템플릿이 적용되지 않았습니다.generic.xaml의 데이터 템플릿을 어떻게 자동으로 적용 할 수 있습니까 (redux)?
주어진 답은 자신의 사용자 지정 형식을 호스팅하는 컨트롤의 ControlTemplate.Resources에 DataTemplate을 배치하는 것이 좋습니다. 그러나이 작업은 매우 효과적이지만 호스트 컨트롤뿐만 아니라 다른 곳에서도 적용 할 DataTemplate이 필요하다고 가정합니다. DataTemplate을 다른 모든 호스트 컨트롤의 ControlTemplates에 복사해야합니까?
편집 (재 작성 질문) :
내가 MVVM 디자인 원리를 사용하여 WPF 응용 프로그램을 개발하고있다. MainWindow.xaml에는 UI 구조가 포함되어 있으며 모든 스타일은 Themes \ generic.xaml으로 코딩되어 있습니다. (이 동작은 별도의 뷰 모델 클래스로 코딩되었지만 관련이 없습니다.) UI의 일부로, 자신의 생성 (.) 일반 .Net 객체 컬렉션을 표시하기 위해 ListBox
()의 하위 클래스를 만들었습니다. MyListBoxSubClass
Template
속성을 다시 정의하고 generic.xaml 스타일을 다시 정의하고 예상대로 적용됩니다. MyObject
의 DataTemplate
도 generic.xaml에 있지만 적용되지 않습니다. 위의 링크에 따르면 DataTemplate
을 적용하기 위해 DataTemplate
을 ControlTemplate
의 Resources
컬렉션에 넣고 MyListBoxSubClass
을 넣어야합니다. 이것은 훌륭하게 작동합니다.
내 질문은 DataTemplate
을 복제 할 필요없이 DataTemplate
내 응용 프로그램에서 사방 MyObject
에 적용 할 받으시는 방법? DataTemplate
에 키를 추가하고 그것을 필요로하는 곳에서 참조하려고했지만 어떤 이유로 런타임에 XAML 구문 분석 오류가 발생하고 Resharper가 내 DataTemplate
키를 해결할 수 없다고 말합니다.
DataTemplate에 키를 추가하고 템플릿을 적용 할 때마다 사용할 수 있으므로 전체 템플릿을 복사 할 필요가 없습니다. –
그렇게하면 Resharper에서 "해결할 수 없습니다"라는 오류를 표시하고 XAML의 해당 부분을로드하려고 할 때 응용 프로그램이 중단됩니다. – gregsdennis