XAML에는 컬렉션에서 항목을 얻을 수있는 XPath와 같은 구문이 있습니까?

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

  •  05-07-2019
  •  | 
  •  

문제

내 뷰 모델에는 뷰에서 단어를 번역하는 키/값이있는 사전 객체가 있습니다.

언어 정보를 XML 객체 그런 다음 XPath로 번역 된 문구를 선택하십시오.

<TextBlock DataContext="{TranslatorDictionaryXml}" Text="{Binding XPath=/terms/term[key='edit']/value[@lang='en-US']}"/>

그러나 이것을 수행하는 비슷한 방법이 있습니까? 비 XML 객체 그것은 일종의 Xpath와 같은 구문을 제공합니다

의사 코드 :

<TextBlock DataContext="{CurrentLanguageTranslatorDictionary}" Text="{Binding path=Key['edit']}"/>

컬렉션을 ListView 또는 다른 컬렉션 요소에 바인딩하고 싶지 않지만 하나의 번역기 개체를 개별 텍스트 블록 및 텍스트 상자 및 툴팁, 그런 다음 경로 구문을 사용하여 바운드 컬렉션에서 특정 항목을 가져옵니다.

이게 가능해?

도움이 되었습니까?

해결책

예, 둘 다 할 수 있습니다. XPath 속성이 있습니다. 제본 또한. 어떻게하는지에 대한 좋은 예가 있습니다. 여기, 그리고 전체적으로 구속력있는 방법 샘플. 당신은 할 수 있습니다 또한 컬렉션의 인덱서를 사용하십시오 그렇게하려면 단일 따옴표 나 탈출 된 인용문이 필요하지 않습니다.

<TextBox Text="{Binding Path=Countries[US]}" />

public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();

        Countries = new Dictionary<string, string>();
        Countries.Add("US", "United States");
        Countries.Add("CA", "Canada");

        this.DataContext = this;
    }

    public Dictionary<string, string> Countries { get; set; }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top