Silverlight 4.0 我应该在哪里放置busyindicator来包装整个页面,以便在活动完成之前不启用任何控件

Silverlight 4.0 我应该在哪里放置busyindicator来包装整个页面,以便在活动完成之前不启用任何控件,silverlight-4.0,controls,mvvm-light,busyindicator,Silverlight 4.0,Controls,Mvvm Light,Busyindicator,我正在Silverlight 4中使用MVVM Light创建一个应用程序 目前我有一个有很多控件的页面,如StackPanel、Listbox、TexBlock和按钮。我在页面上有一个绑定到viewmodel的busyindicator。当单击按钮表示从数据库检索数据时,busyindicator将显示,并在调用完成时消失 这一切都是正常的 我想要发生的是,整个页面被包装在busyindicator中,这样页面变暗,在事件完成之前没有任何工作。我已经读到,您只需将控件包装在Busyindica


我正在Silverlight 4中使用MVVM Light创建一个应用程序

目前我有一个有很多控件的页面,如StackPanel、Listbox、TexBlock和按钮。我在页面上有一个绑定到viewmodel的busyindicator。当单击按钮表示从数据库检索数据时,busyindicator将显示,并在调用完成时消失

这一切都是正常的

我想要发生的是,整个页面被包装在busyindicator中,这样页面变暗,在事件完成之前没有任何工作。我已经读到,您只需将控件包装在Busyindicator中。 无论我将指示器的开口放在何处,我都会看到蓝色线条,显示“属性内容设置了多次。” 我已经把代码贴在下面了,谁能解释一下指标代码放在哪里

        <Grid.RowDefinitions>
            <RowDefinition Height ="0" />
            <RowDefinition Height ="30" />
            <RowDefinition Height ="60" />
            <RowDefinition Height ="Auto" />
            <RowDefinition Height ="40" />
        </Grid.RowDefinitions>

        <TextBlock Grid.Row="1" Grid.Column="0" Text="Header" Width="353" Margin="0 0 0 0" Height="30" />

        <StackPanel Grid.Row="2"  VerticalAlignment="Center" Orientation="Horizontal" >

            <Button Grid.Row="2" Grid.Column="0" Content="GetData" Height="35" Width="130" HorizontalAlignment="Left" Margin="0,0,0,0"  Command="{Binding GetData}"></Button>
            <!--  <toolkit:BusyIndicator Width="150" Height="50" IsBusy="{Binding IsBusy}" BusyContent="Searching ..."  /> -->

        </StackPanel>

        <ListBox x:Name="MyListBox" Grid.Row="3">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"></RowDefinition>
                            <RowDefinition Height="Auto"></RowDefinition>
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="400"></ColumnDefinition>
                            <ColumnDefinition Width="70"></ColumnDefinition>
                            <ColumnDefinition Width="10"></ColumnDefinition>
                            <ColumnDefinition Width="70"></ColumnDefinition>
                        </Grid.ColumnDefinitions>

                        <TextBlock Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Text="{Binding Name}"></TextBlock>

                        <Button Grid.Row="0" Grid.RowSpan="2" Grid.Column="3" Content="Delete" VerticalAlignment="Center" 
                            Command="{Binding Delete}"></Button>
                    </Grid>

                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

        <TextBlock Grid.Row="4" Margin="5,10,0,0" Text="{BindingMessage}"></TextBlock>

</Grid>


您需要将所有内容放入用户控件中,如下所示:

<toolkit:BusyIndicator Width="150" Height="50" IsBusy="{Binding IsBusy}" BusyContent="Searching ...">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height ="0" />
            <RowDefinition Height ="30" />
            <RowDefinition Height ="60" />
            <RowDefinition Height ="Auto" />
            <RowDefinition Height ="40" />
        </Grid.RowDefinitions>
        <TextBlock Grid.Row="1" Grid.Column="0" Text="Header" Width="353" Margin="0 0 0 0" Height="30" />
        <StackPanel Grid.Row="2"  VerticalAlignment="Center" Orientation="Horizontal" >
            <Button Grid.Row="2" Grid.Column="0" Content="GetData" Height="35" Width="130" HorizontalAlignment="Left" Margin="0,0,0,0"  Command="{Binding GetData}"></Button>

        </StackPanel>
        <ListBox x:Name="MyListBox" Grid.Row="3">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"></RowDefinition>
                            <RowDefinition Height="Auto"></RowDefinition>
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="400"></ColumnDefinition>
                            <ColumnDefinition Width="70"></ColumnDefinition>
                            <ColumnDefinition Width="10"></ColumnDefinition>
                            <ColumnDefinition Width="70"></ColumnDefinition>
                        </Grid.ColumnDefinitions>
                        <TextBlock Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Text="{Binding Name}"></TextBlock>
                        <Button Grid.Row="0" Grid.RowSpan="2" Grid.Column="3" Content="Delete" VerticalAlignment="Center"                              Command="{Binding Delete}"></Button>
                    </Grid>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
        <TextBlock Grid.Row="4" Margin="5,10,0,0" Text="{BindingMessage}"></TextBlock>
    </Grid>
</toolkit:BusyIndicator>


感谢您的快速回复。我在设计模式下尝试了这一点,当我运行应用程序时,我所能看到的只是带有文本标题的文本块。这是在我的视野中,没有别的东西显示出来!对不起,我想我把它弄坏了!我需要去掉宽度和高度!!现在查看显示,因为它应该很抱歉没有尽快返回给您。是的,谢谢,它正在工作!!