Progressbar和Caliburn Micro
大家好,
这是我使用Caliburn的第一个项目,所以我可能会遗漏一些东西。
我有下面的xaml和viewmodel。该视图包含一个填充为100%的进度条,它会报告方法ProgressBar的更改。 该方法按预期触发,但其Value参数始终为0.0 我深入研究了源代码并且依赖属性被正确传递并包含%(例如22.45546),但由于某种原因我不理解参数不受限制并保持0.0
非常感谢任何帮助,因为更好地了解Caliburn是我的首要任务。
XAML
<ProgressBar Width="100" Height="20" x:Name="ProgressBar">
<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>
C#
public void ProgressBar(double Value)
{
// Value is always 0.0 ??
}
答案 0 :(得分:1)
发生的是0.0是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