1
DataGrid ComboBox의 ItemsSource로 XML 데이터를 설정하는 데 문제가 있습니다. 나는 콤보 상자에 데이터를로드 할 수 있었다 전에WPF DataGrid ComboBox XML 데이터로드
<Custom:DataGridTemplateColumn Header="Fruits" Width="300">
<Custom:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Name="cboFruit"/>
</DataTemplate>
</Custom:DataGridTemplateColumn.CellTemplate>
</Custom:DataGridTemplateColumn>
것은, 난 그냥 넣어 :
<?xml version="1.0" standalone="yes"?>
<Table>
<FRUIT>
<edible>True</edible>
<Types main="Apple">
<Type>Fuji</Type>
<Type>Gala</Type>
</Types>
</FRUIT>
<FRUIT>
<edible>True</edible>
<Types main="Banana">
<Type>Burro</Type>
<Type>Red</Type>
</Types>
</FRUIT>
</Table>
다음은 WPFtoolkit DataGrid에 콤보 상자에 대한 XAML 코드 : 아래
내 XML 코드 XML 데이터를 DataSet에 저장하고 DataGrid의 DataContext를 DataSet의 첫 번째 테이블로 설정합니다.과일의 각 유형을 ComboBox에 넣으려고하기 때문에 이제는 작동하지 않습니다.
XML이 작동하도록하려면 아무 것도 변경할 수 있습니다. 더 많은 정보가 필요하면 알려주세요.
미리 감사드립니다. 아래에 배치하는
내 CustomDataGrid (WPFtoolkit)에 대한 전체 XAML입니다 :
<Window.DataContext>
<XmlDataProvider x:Name="FruitData" XPath="fruits/fruit" />
</Window.DataContext>
<Grid>
<Custom:CustomDataGrid x:Name="dgFruits" AutoGenerateColumns="False" Margin="5" CanUserAddRows="True"
ItemsSource="{Binding XPath=fruits/fruit}"><!--Here is confusion-->
<Custom:DataGrid.Columns>
<!--Edible-->
<Custom:DataGridTextColumn Header="Edible" Binding="{Binding XPath=edible}"/>
<!--Fruit-->
<Custom:DataGridTemplateColumn Header="Fruit Types" Width="300">
<Custom:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding XPath=types/type}"/><!--This works fine on a combobox outside of the DataGrid-->
</DataTemplate>
</Custom:DataGridTemplateColumn.CellTemplate>
</Custom:DataGridTemplateColumn>
</Custom:CustomDataGrid>
</Grid>
XML 파일이 유효하지 않은 데이터 그리드를 사용하고 있습니다. XML 문서는 오직 하나의 루트만을 가질 수 있습니다. 또한 XML을로드하기 위해 DataSet이 필요하지 않습니다. 'XmlDataProvider' 또는 Linq-to-XML 등을 사용할 수 있습니다. –
아, 제 잘못입니다. 나는 캡슐에 FRUIT (이름이
'Source' 속성을 변경할 수 있습니다. 코드에서 해당 속성을 변경해보십시오. 소스의 전환 후에 현재 바인딩이 깨지지 않도록 데이터의 구조가 동일해야합니다. –
답변
여기 다음에
XmlDataProvider
업데이트 XML 레이아웃을 사용하는 예이다 : XAML에서
, 데이터를 만든 다음 XPath를 사용하여 XML 노드에 액세스하십시오.
편집 : 여기
그것이
출처
2014-10-21 19:59:39
아, 답장을 보내 주셔서 감사합니다. 빠른 질문 - 소스 XML 파일 경로가 변경되면 XMLDataProvider가 작동합니까? 내 말은 C : \ test1 \ fruits.xml과 C : \ test2 \ fruits.xml입니다. 사용자는 두 개의 XML 파일 중에서 하나를 선택할 수 있습니다. – Turkwise
@ Turkwise 당신은 확실히 소스를 바꿀 수 있습니다. 자세한 내용은이 게시물을 참조하십시오 : http://stackoverflow.com/questions/2037906/how-to-change-xmldataprovider-source-in-wpf-at-runtime –
감사합니다. 정기적 인 콤보 상자에 정보를 입력했습니다. ,하지만 동일한 코드를 사용하면 내 CustomDataGrid의 콤보 상자가 비어 있습니다. DataGrid의 주요 부분에서 빠진 것이 있습니까? 나는 시도했다 –
Turkwise
관련 문제