По существу, я хочу сделать то, что говорит название, если ширина столбца равна 0,50, тогда прямоугольник должен быть красным, если он равен .75, тогда он должен быть янтарным, а если он равен 1, тогда он должен быть зеленым.Изменение прямоугольника Заполнение на основе столбца Ширина сетки
Я думал, что смогу добиться этого с помощью DataTriggers, но по какой-то причине я получаю сообщение об ошибке «Ссылка на объект, не установленное на экземпляр объекта», вот мой код, я что-то упустил?
FYI свойство ширины будет изменено в backend через событие timer_tick.
<Grid x:Name="Grid1" Width="300" Height="30">
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="MyColumn1" Width=".50*"></ColumnDefinition>
<ColumnDefinition x:Name="MyColumn2" Width=".50*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.Triggers>
<DataTrigger Binding="{Binding ElementName=MyColumn1,Path=Width}" Value=".50*">
<Setter TargetName="rect" Property="Fill" Value="Red"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=MyColumn1,Path=Width}" Value=".75*">
<Setter TargetName="rect" Property="Fill" Value="Yellow"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=MyColumn1,Path=Width}" Value="1">
<Setter TargetName="rect" Property="Fill" Value="Green"></Setter>
</DataTrigger>
</Grid.Triggers>
<Rectangle x:Name="rect" Grid.Column="0" HorizontalAlignment="Stretch"></Rectangle>
<Rectangle Grid.Column="1" Fill="Blue"></Rectangle>
</Grid>
Спасибо, я не могу поверить, что это было так просто :-) – Coesy