Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf Caliburn Micro:Progressbar不会将更改的值报告给操作_Wpf_Mvvm_Caliburn.micro_Caliburn - Fatal编程技术网

Wpf Caliburn Micro:Progressbar不会将更改的值报告给操作

Wpf Caliburn Micro:Progressbar不会将更改的值报告给操作,wpf,mvvm,caliburn.micro,caliburn,Wpf,Mvvm,Caliburn.micro,Caliburn,Progressbar和Caliburn Micro 大家好, 这是我第一个使用Caliburn的项目,所以我可能会错过一些东西 我有下面的xaml和viewmodel。该视图包含一个填充为100%的progressbar,并报告对progressbar方法的更改。 方法按预期激发,但其值参数始终为0.0 我深入源代码,正确地传递了dependency属性并包含了%(例如22.45546),但由于某些原因,我没有意识到该参数没有边界且保持为0.0 非常感谢您的帮助,因为更好地了解Caliburn

Progressbar和Caliburn Micro

大家好,

这是我第一个使用Caliburn的项目,所以我可能会错过一些东西

我有下面的xaml和viewmodel。该视图包含一个填充为100%的progressbar,并报告对progressbar方法的更改。 方法按预期激发,但其值参数始终为0.0 我深入源代码,正确地传递了dependency属性并包含了%(例如22.45546),但由于某些原因,我没有意识到该参数没有边界且保持为0.0

非常感谢您的帮助,因为更好地了解Caliburn是我的首要任务

XAML


结果是0.0是Double的默认值
您请求一个double,但Caliburn不知道要在其中放入什么,因此它返回默认值

从文档中,您应该了解以下语法:

<ProgressBar
            Width="100"
            Height="20"
            x:Name="ProgressBar">
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="ProgressChanged">
                    <cal:ActionMessage MethodName="ProgressBar"> 
                            <cal:Parameter Value="{Binding ElementName=ProgressBar, Path=Value}" />
                    </cal:ActionMessage>
                </i:EventTrigger>
            </i:Interaction.Triggers>
            <ProgressBar.Triggers>
                <EventTrigger RoutedEvent="ProgressBar.Loaded">
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation Storyboard.TargetName="ProgressBar"
                                             Storyboard.TargetProperty="Value"
                                             From="0"
                                             To="100"
                                             Duration="0:0:5" />
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </ProgressBar.Triggers>
        </ProgressBar>


其中
i:
是System.Windows.Interactivity

调用ProgressBar(双值)的命令在哪里?此外,你的问题与卡利本无关。你好,狒狒,你用过卡利本吗?如果我没有弄错的话,它将progressbar与约定的方法连接起来,因为它们共享相同的名称。我的错,将它与另一个框架弄错了。
public void ProgressBar(double Value)
{
      // Value is always 0.0 ??
}
<ProgressBar
            Width="100"
            Height="20"
            x:Name="ProgressBar">
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="ProgressChanged">
                    <cal:ActionMessage MethodName="ProgressBar"> 
                            <cal:Parameter Value="{Binding ElementName=ProgressBar, Path=Value}" />
                    </cal:ActionMessage>
                </i:EventTrigger>
            </i:Interaction.Triggers>
            <ProgressBar.Triggers>
                <EventTrigger RoutedEvent="ProgressBar.Loaded">
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation Storyboard.TargetName="ProgressBar"
                                             Storyboard.TargetProperty="Value"
                                             From="0"
                                             To="100"
                                             Duration="0:0:5" />
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </ProgressBar.Triggers>
        </ProgressBar>