При просмотре кода, который я написал много лет назад, я столкнулся с этим триггером в моей секции стиля WPF. Как можно видеть, я вызываю MultiBinding Converter 7 раз с теми же ссылками на Checkin, Checkout и NotSeen для создания 7 разных цветов. Мне кажется, что это ужасно избыточно и занимает много места. Должен быть лучший способ.Упрощение стиля. Триггеры с mulitibinding в WPF
Есть ли способ сделать это с более коротким стилем? Кроме того, является ли это способом избежать конвертера MultiBinding вообще в рамках MVVM? Вместо этого можно использовать прикрепленное поведение?
ТИА
<Style.Triggers>
<!-- if checkout is null, then check for waiting time from the checkin value. Setter action occurs for DataTrigger Value -->
<DataTrigger Value="1" >
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource WaitStatus}">
<Binding Path="CheckIn" />
<Binding Path="CheckOut" />
<Binding Path="NotSeen" />
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="Background" Value="{StaticResource VioletBrush}" />
</DataTrigger>
<DataTrigger Value="2" >
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource WaitStatus}">
<Binding Path="CheckIn" />
<Binding Path="CheckOut" />
<Binding Path="NotSeen" />
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="Background" Value="{StaticResource BlueBrush}" />
</DataTrigger>
<DataTrigger Value="3" >
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource WaitStatus}">
<Binding Path="CheckIn" />
<Binding Path="CheckOut" />
<Binding Path="NotSeen" />
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="Background" Value="{StaticResource TurquoiseBrush}" />
</DataTrigger>
<DataTrigger Value="4" >
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource WaitStatus}">
<Binding Path="CheckIn" />
<Binding Path="CheckOut" />
<Binding Path="NotSeen" />
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="Background" Value="{StaticResource GreenBrush}" />
</DataTrigger>
<DataTrigger Value="5" >
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource WaitStatus}">
<Binding Path="CheckIn" />
<Binding Path="CheckOut" />
<Binding Path="NotSeen" />
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="Background" Value="{StaticResource YellowBrush}" />
</DataTrigger>
<DataTrigger Value="6" >
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource WaitStatus}">
<Binding Path="CheckIn" />
<Binding Path="CheckOut" />
<Binding Path="NotSeen" />
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="Background" Value="{StaticResource OrangeBrush}" />
</DataTrigger>
<DataTrigger Value="7" >
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource WaitStatus}">
<Binding Path="CheckIn" />
<Binding Path="CheckOut" />
<Binding Path="NotSeen" />
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="Background" Value="{StaticResource RedBrush}" />
</DataTrigger>
</Style.Triggers>
Почему вы не возвращаете непосредственно кисть вместо int? multibind фон непосредственно на ваш конвертер – nkoniishvt