XML의 XPath에 바인딩되는 데이터 바인딩된 UI 컨트롤에 대한 코드 숨김의 XML 문자열을 어떻게 로드합니까?

StackOverflow https://stackoverflow.com/questions/60259

문제

내가 본 모든 샘플은 xmldataprovider 소스의 정적 XML을 사용하며, 이는 XPath 바인딩을 사용하여 UI 컨트롤을 데이터 바인딩하는 데 사용됩니다.아이디어는 WPF UI를 사용하여 동적 XML(코딩 중에 개발자에게 알려진 구조)을 편집하는 것입니다.

동적 xml 문자열을 로드(예: 런타임 중에 파일에서 로드)한 다음 해당 xml 문자열을 XmlDataprovider 소스로 사용하는 방법을 찾은 사람이 있습니까?

코드 조각이 좋을 것입니다.

업데이트:더 명확하게하기 위해 웹 서비스 호출에서받은 XML 문자열을로드하고 싶다고 가정 해 봅시다.나는 xml의 구조를 알고 있다.그래서 WPF 창의 WPF UI 컨트롤에 데이터 바인딩했습니다.이 작업을 수행하는 방법은 무엇입니까?웹의 모든 샘플은 XmlDataProvider 노드의 XAML 코드 내에 전체 XML을 정의합니다.이것은 내가 찾고 있는 것이 아닙니다.UI 컨트롤에 데이터 바인딩하기 위해 코드 숨김에서 xml 문자열을 사용하고 싶습니다.

도움이 되었습니까?

해결책

다음은 디스크에서 XML 파일을 로드하고 이를 TreeView에 바인딩하는 데 사용한 일부 코드입니다.간결성을 위해 일반적인 테스트 중 일부를 제거했습니다.예제의 XML은 OPML 파일입니다.

XmlDataProvider provider = new XmlDataProvider();

if (provider != null)
{
  System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
  doc.Load(fileName);
  provider.Document = doc;
  provider.XPath = "/opml/body/outline";
  FeedListTreeView.DataContext = provider;
}

다른 팁

웹 서비스를 사용하여 XML을 가져오고 여기에서 XML 문서를 생성한 다음 xmlDataProvider의 소스를 서비스에서 얻은 XMLDocument로 설정할 수 있습니다.

나는 그것을 테스트하기 위해 Visual Studio가 있는 PC에 없지만 당신이 이것을 할 수 있을 것입니다.

질문에서 언급한 단계는 다음과 같습니다.

1. Get XML from webservice
2. Convert XML String to XML Document
3. Set the XMLDataProvider.Document value to your XML Document
4. Bind that to your controls
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top