【发布时间】:2016-03-14 23:46:32
【问题描述】:
我有一个矩形,其背景颜色绑定到一个变量。当我单击矩形时,我想调出一个颜色选择器,以便用户可以更改矩形的颜色。
我遇到的问题是,当我更改 o 时,它并没有像我预期的那样更改 WorkflowModel.BackgroundColour,它只会更改 o
知道如何实现这一点,或者是否有某种方法可以传递WorkflowModel.BackgroundColour 的ref 并以这种方式进行编辑。
XAML:
<Rectangle Stroke="Black" StrokeThickness="1" Grid.Row="6" Grid.Column="1" Height="25" Width="25">
<Rectangle.InputBindings>
<MouseBinding MouseAction="LeftClick"
CommandParameter="{Binding WorkflowModel.BackgroundColour}"
Command="{Binding ChangeColorCommand}"/>
</Rectangle.InputBindings>
<Rectangle.Fill>
<SolidColorBrush Color="{Binding WorkflowModel.BackgroundColour}"/>
</Rectangle.Fill>
</Rectangle>
命令:
private void ChangeColorCommandExecute(object o)
{
Views.DialogViews.ColorPickerDialog cpd = new Views.DialogViews.ColorPickerDialog((Color)o);
cpd.ShowDialog();
if(cpd.DialogResult == Views.DialogViews.ColorPickerDialog.DialogResults.Ok)
{
o = cpd.SelectedColor;
}
}
public ICommand ChangeColorCommand
{
get { return new RelayCommand(o => ChangeColorCommandExecute(o)); }
}
【问题讨论】: