2
XML 파일을 읽고 데이터를 표시하는 WPF 인터페이스에서 작업하고 있습니다. XML 파일은 다음과 같습니다.XML 속성에 따라 데이터 템플릿을 만드는 방법은 무엇입니까?
<People>
<Person Gender="Male">
<Name>Joe</Name>
</Person>
<Person Gender="Female">
<Name>Susan</Name>
</Person>
</People>
Person의 Gender 속성에 따라 데이터 템플릿이 필요합니다. 이 데이터 템플릿은 목록 상자 항목 용입니다. 목록 상자의 소스는 사람입니다.
<DataTemplate DataType="Person[@Gender='Male']">
</DataTemplate>
<DataTemplate DataType="Person[@Gender='Female']">
</DataTemplate>
나는 위의 코드 줄과 같을 것이라고 생각했지만 작동하지 않습니다. 어떤 아이디어?
감사합니다.
답변
다음은 위의 XML 예제에 대한 DataTemplateSelector의 : 도움을
public class MyDataTemplateSelector : DataTemplateSelector
{
private DataTemplate _MaleTemplate = null;
private DataTemplate _FemaleTemplate = null;
public DataTemplate MaleTemplate
{
get { return _MaleTemplate; }
set { _MaleTemplate = value; }
}
public DataTemplate FemaleTemplate
{
get { return _FemaleTemplate; }
set { _FemaleTemplate = value; }
}
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
XmlElement currentNode = (XmlElement)item;
DataTemplate selectedTemplate = null;
string selectedGender = "";
selectedGender = currentNode.GetAttribute("Gender");
switch (selectedGender)
{
case "Male":
selectedTemplate = _MaleTemplate;
break;
case "Female":
selectedTemplate = _FemaleTemplate;
break;
default:
break;
}
return selectedTemplate;
}
}
감사합니다! 나는 이것이 다른 누군가에게도 유용 할 것이기를 희망합니다!
당신이 내 heeeerooooo라는 것을 알고 있습니까? 정말 고마워요! – JVar
링크가 끊어졌습니다. 이제 여기 있습니다 : http://drwpf.com/blog/2008/01/03/itemscontrol-d-is-for-datatemplate/ –