пример.

<DataTemplate>
  <StackPanel Orientation="Vertical" Name="AddressStackPanel" >
    <ComboBox  Name="ComboBox" ItemsSource="{Binding Path=MatchedAddressList}" DisplayMemberPath="Address" SelectedIndex="0" SelectionChanged="ComboBox_SelectionChanged"/>
    <TextBlock Name="InputtedAddress" Text="{Binding Path=InputtedAddress}"  Foreground={Hopefully pass the UI element to the dataconverter }  />
  </StackPanel>
</DataTemplate>

Box имеет адреса, совпадающие с базой геоданных с самым высоким выбранным значением оценки. Текстовый блок имеет введенный пользователем адрес, который использовался для сопоставления. Если адрес тот же, я хочу, чтобы на переднем плане был зеленый, в противном случае красный.

Я подумал, что, может быть, мне удастся передать весь TextBlock в преобразователь данных, получить его родительский StackPanel, получить дочерний элемент 0, привести к Combobox, получить 0-й элемент и сравнить, а затем вернуть красный или зеленый. Это выполнимо?

В противном случае, я думаю, что мне нужно пройти по визуальному дереву, которое так же ужасно, как мне кажется.

Ответы на вопрос(1)

Ваш ответ на вопрос