Не удовлетворенными ответами, я пытался найти один сам ... Ну, похоже, это больше похоже на хак, а затем на решение, но для меня это хорошо работает. Это решение использует MultiBindings особым образом. Сначала это может показаться тонкой кода, но вы можете использовать его с минимальными усилиями.
Сначала я реализовал «IMultiValueConverter»
public class SelectedItemsMerger : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
SelectedItemsContainer sic = values[1] as SelectedItemsContainer;
if (sic != null)
sic.SelectedItems = values[0];
return values[0];
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
return new[] { value };
}
}
и контейнер SelectedItems Contraper / Wrapper:
public class SelectedItemsContainer
{
/// Nothing special here...
public object SelectedItems { get; set; }
}
Теперь мы создаем привязку для нашего ListBox.SelectedItem (Singular). Примечание. Вам необходимо создать статический ресурс для «Конвертера». Это можно сделать один раз для каждого приложения и повторно использовать для всех списков, которым нужен конвертер.
<ListBox.SelectedItem>
<MultiBinding Converter="{StaticResource SelectedItemsMerger}">
<Binding Mode="OneWay" RelativeSource="{RelativeSource Self}" Path="SelectedItems"/>
<Binding Path="SelectionContainer"/>
</MultiBinding>
</ListBox.SelectedItem>
В ViewModel я создал контейнер, с которым я могу привязываться. Важно инициализировать его новым (), чтобы заполнить его значениями.
SelectedItemsContainer selectionContainer = new SelectedItemsContainer();
public SelectedItemsContainer SelectionContainer
{
get { return this.selectionContainer; }
set
{
if (this.selectionContainer != value)
{
this.selectionContainer = value;
this.OnPropertyChanged("SelectionContainer");
}
}
}
И все. Может быть, кто-то видит некоторые улучшения? Что вы думаете об этом?
Шрифты fnt или json должны быть включены в файлы png
<a-entity scale=" 30 30 30"
position="19 3.5 -19.4"
text="font: fonts/helvetica.fnt; fontImage:fonts/helvetica.png
color: #737373; value: KASBOEK® XVIII, pavilions;">
</a-entity>