lamp xamlI'm используя структуру ниже много раз в DataTemplates, чтобы загорать маленькие лампы.Могу ли я сделать Xaml один вкладыш?
Могу ли я поместить его в ContentPresenter или DataTemplate или что-нибудь подобное, чтобы уменьшить код до одной строки?
Значение «test» жестко запрограммировано в xaml для каждой лампы. Я получаю значение привязки с строкой словаря «<», «Сигнал»> «Сигналы».
Я не могу использовать MultiBinding с конвертером, так как он использует столько строк. Любые идеи сделать это одним вкладышем в xaml?
<StackPanel ToolTip="{Binding Signals[test].tooltip}">
<ContentPresenter Content="{Binding Signals[test].lampvalue}" ContentTemplate="{StaticResource GreenLampPresenter}" />
<TextBlock Text="test"/>
</StackPanel>
Было бы идеально, если бы приведенный ниже пример был фактически юридическим утверждением в xaml. Я все еще хочу как сигнал от моего словаря и жёстко прописанные значение:
Content="{Binding Path=Signals[test], StringFormat='{0} test'}".
Дело в том, что у меня есть более чем 100 ламп, как в маленьком изображении. И состояние лампы сохраняется в словаре. Если лампа не найдена в словаре, это означает, что она не подключена в конфигурации (или в физическом контроллере). Ему все еще нужен маленький текст I0, чтобы идентифицировать его. Если у меня нет значения параметра «IO», записанного в режиме «галочка», чтобы назвать лампу, отобразится только зеленый индикатор. И в физическом контроллере всегда присутствует значение «IO».
Поэтому, пожалуйста, предложить верное решение, содержащее оба значения: Сигнал [тест] и «тест» в одной строке :-)
Если вы в буквальном смысле просто пытаются уплотнить две вещи, 'Content =" {Binding Path = Сигналы [тест] .lampvalue, StringFormat = '{0} test'} "' как комментарий вместо ответа, потому что у меня нет кофе еще и не было уверен. –
Я отредактировал мой вопрос, чтобы более подробно описать мою проблему. – bitestar
Умм, это «законное» утверждение в xaml. –