(превращая комментарий в правильный ответ)
Основная причина заключается в том, что вы вводите узел документа в функцию cts: highlight, и, очевидно, он находит совпадение на верхнем уровне в вашем случае. Это звучит немного странно, но он пытается поместить этот узел верхнего уровня в элемент hilighted-text
, но это не разрешено в XML.
Простое решение - передать корневой элемент, а не сам узел документа, используя $document/node()
, а не $document
.
НТН!
Вы сделали, чтобы сотрудник возразил в Вашем коде? Раз так Вы могли выставить свойство URI, которое создается на основе идентификатора сотрудника объекта.
Иначе могли Вы иметь страницу asp.net на своем веб-сайте, который подает изображение (я понятия не имею, будет ли это работать, это - идея хотя),
поэтому имейте что-то вроде этого в своем xaml
<Image Source="{Binding Path=EmployeeId, StringFormat='http://my.url.com/Image.aspx?employeeId={0}'}" />
Image.aspx передал бы изображение потоком на основе employeeId, становятся переменными?
Поскольку я сказал, что там является, вероятно, немного неправильным с этим, но это могло работать, я думаю, что свойство URI на классе сотрудника было бы самой чистой опцией все же.
Я думаю, что что-то вроде этого поможет:
<Window.Resources>
<ImageSource x:Key="MyImage" Source="C:\Images\Default.jpg" />
</..>
<Image Source="{DynamicResource MyImage}" />
Затем в Вашем коде - позади:
((ImageSource)this.Resources["MyImage"]).Source = "C:\Path\From\Config.jpg";