0

进度条和 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 ??
}
4

1 回答 1

1

发生的情况是 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在哪里

于 2011-12-26T13:27:19.060 回答