首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RoutedEvents和命令

RoutedEvents和命令
EN

Stack Overflow用户
提问于 2014-10-07 00:04:22
回答 1查看 86关注 0票数 0

我正在开发一个带有RGB选择器的MVVM应用程序。我有3个滑块为每个通道,并希望使用路由事件来捕捉每个滑块上的ValueChanged事件

代码语言:javascript
复制
<StackPanel Grid.Row="0" Grid.Column="1" Slider.ValueChanged="DoSmth">
    <Slider Value="{Binding R}" Minimum="0" Maximum="255" />
    <Slider Value="{Binding G}" Minimum="0" Maximum="255" />
    <Slider Value="{Binding B}" Minimum="0" Maximum="255" />
</StackPanel>

现在,这是一个MVVM应用程序,我想使用命令来实现它。然而,我无法找到一种发送命令的方法,而不必将其单独分配给每个滑块。我读了一些关于“路由命令”的文章,但这也没有给我一个解决方案。

我如何才能做到这一点呢?

EN

回答 1

Stack Overflow用户

发布于 2014-10-07 00:27:11

如果您坚持使用ICommand,那么您应该使用附加属性包装Slider.ValueChanged事件。你可以在我对What's the best way to pass event to ViewModel?问题的回答中找到如何做到这一点。

然而,你真的不需要使用任何ICommand...当然,每次视图模型中的数据绑定属性发生变化时,您都可以创建一个新的Color?此示例使用户能够在不使用任何ICommand的情况下更改颜色:

代码语言:javascript
复制
<StackPanel Grid.Row="0" Grid.Column="1">
    <Slider Value="{Binding R}" Minimum="0" Maximum="255" />
    <Slider Value="{Binding G}" Minimum="0" Maximum="255" />
    <Slider Value="{Binding B}" Minimum="0" Maximum="255" />
    <Rectangle HorizontalAlignment="Stretch" Height="100">
        <Rectangle.Fill>
            <SolidColorBrush Color="{Binding Color}" />
        </Rectangle.Fill>
    </Rectangle>
</StackPanel>

在视图模型中:

代码语言:javascript
复制
private byte r = 127, g = 127, b = 127;
public byte R
{
    get { return r; }
    set { r = value; Color = Color.FromArgb((byte)255, R, G, B); NotifyPropertyChanged("R"); }
}
public byte G
{
    get { return g; }
    set { g = value; Color = Color.FromArgb((byte)255, R, G, B); NotifyPropertyChanged("G"); }
}
public byte B
{
    get { return b; }
    set { b = value; Color = Color.FromArgb((byte)255, R, G, B); NotifyPropertyChanged("B"); }
}
private Color color = Colors.Black;
public Color Color
{
    get { return color; }
    set { color = value; NotifyPropertyChanged("Color"); }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26220225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档