У меня следующая проблема: я разрабатываю UserControl, датчик градуированного цвета. Я решил использовать образец дизайна MVVM, который оказывается хорошим выбором. Однако у меня есть следующая проблема. В файле View XAML я пытаюсь преобразовать значение в цвет, используя конвертер custtom, для которого требуется 2 параметра. Для этого я использую MultiBinding:
<ItemsControl ItemsSource="{Binding Path=ViewData}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Rectangle Height="2">
<Rectangle.Fill>
<MultiBinding Converter="{StaticResource colorConverter}">
<Binding Path="Value"/>
<Binding Source="{StaticResource Palette_ICOS}"/>
</MultiBinding>
</Rectangle.Fill>
</Rectangle>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Дело в том, что я не хочу использовать
{StaticResource Palette_ISO1}
в качестве второго параметра, но это свойство, которое является прямым свойством DataContext и не является свойством члена коллекции ViewData. Я пробовал несколько способов реализовать этот сценарий, но без значительного успеха.
Как и в прошлый раз, я попробовал следующее:
<Binding Path="CurrentPallete"/>
и CurrentPallete выглядит так:
public Palette CurrentPalette
{
get { return _currentPalette; }
set
{
_currentPalette = value;
}
}
т.е. Свойство в классе, экземпляр которого установлен как DataContext элемента управления main , в котором размещен ItemControl . Я получаю
[0x00000001] = {DependencyProperty.UnsetValue}
значение в отладчике, когда вызывается соответствующий конвертер, что, вероятно, означает, что свойство не может быть найдено. Кто-нибудь может указать, как добиться желаемого эффекта? Большое спасибо!