1

我进行了很多搜索,但找不到有关如何执行此操作的示例。

目标是在视图模型中处理这些事件,同时避免视图后面代码中的代码。示例代码和 XAML 将不胜感激。如果您的解决方案需要使用外部 DLL,请提供源代码。

视图模型应该独立于任何视图的存在进行编译。

实际上,我不确定这是否可以做到。欢迎对此问题的任何见解。

到目前为止,请参阅有关进度的示例代码。

http://database.hugetiger.com/dbExplore/MVVMCode.aspx

目前 mediaopend 事件 msgbox 来自后面的代码。如何修改它以使 msgbox 来自 MyViewModel 类?

4

1 回答 1

1

听起来System.Windows.InteractivityMicrosoft.Expression.Interactions组合将非常适合您的需求。

在此示例中,我们使用System.Windows.Interactivity EventTrigger事件MediaElement BufferingStarted来更改属性并使用方法调用模型上的Microsoft.Expression.Interactions方法

<Window x:Class="WpfApplication14.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525"
            xmlns:expint="http://schemas.microsoft.com/expression/2010/interactions"
            xmlns:sysint="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity">
        <Grid>
            <MediaElement >
                <sysint:Interaction.Triggers>
                    <sysint:EventTrigger EventName="BufferingStarted" >
                        <expint:ChangePropertyAction PropertyName="MyProperty" Value="NeValue" />
                        <expint:CallMethodAction  MethodName="MyModelMethod"/>
                    </sysint:EventTrigger>
                </sysint:Interaction.Triggers>
            </MediaElement>
        </Grid>
    </Window>

Yuo 将不得不添加对System.Windows.InteractivitydllMicrosoft.Expression.Interactions的引用。这Microsoft.Expression.InteractionsExpressionBlend SDK的一部分

希望这会有所帮助,因为我发现这个组合对于 WPF 开发来说非常棒。

快乐编码:)

于 2013-01-22T06:14:57.690 回答