0

Silverlight 中的属性未更新..

Public Property CurrentUser As BCOMSUser
        Get
            ' Return _currentUser
            Return BCOMSCurrentUser.BCOMSUser
        End Get
        Set(value As BCOMSUser)
            _currentUser = value
            OnPropertyChanged(Function(x) x.CurrentUser)
        End Set
    End Property

我正在覆盖这样的属性,但仍然保留以前的值。

 Dim usr As BCOMSUser = e.Result.Response 
CurrentUser = usr 


  <sdk:Label Grid.Row="21" Grid.Column="0" Margin="0,0,5,0" HorizontalAlignment="Right" Name="lblRoles" VerticalAlignment="Top" Width="120" Content="Roles:" />
            <sdk:DataGrid Grid.Row="21" Grid.Column="1" AutoGenerateColumns="False" Height="150" HorizontalAlignment="Left" Name="UserRolesDataGrid" VerticalAlignment="Top" Width="182" ItemsSource="{Binding Path=PagedUserRoles}">
                <sdk:DataGrid.Columns>
                    <sdk:DataGridTextColumn Header="Role" Binding="{Binding Path=RoleName}" Width="105" />
                    <sdk:DataGridCheckBoxColumn Header="Subscribe" Binding="{Binding Path=IsSubscribed}" Width="75" />
                </sdk:DataGrid.Columns>
            </sdk:DataGrid>
            <sdk:DataPager Name="UserRolesDataPager" Grid.Row="22" Grid.Column="1" PageSize="10" HorizontalAlignment="Left" VerticalAlignment="Center" HorizontalContentAlignment="Center" Width="182" Source="{Binding Path=PagedUserRoles}"></sdk:DataPager>

            <StackPanel Grid.Row="24" Grid.Column="1" Orientation="Horizontal" >
                <Button Content="Save Changes" Height="23" HorizontalAlignment="Left" Margin="0,0,0,0" Name="btnSaveDetailChanges" VerticalAlignment="Top" Width="Auto" Command="{Binding Path=SaveDetailChangesCommand}" />
            </StackPanel>

代码背后:

   Case UserMaintenanceViewModel.CommandNameOf(Function(x) x.UpdateUserCommand),
                    UserMaintenanceViewModel.CommandNameOf(Function(x) x.SaveDetailChangesCommand)

更新角色后,我获取当前更新的角色,并在回调中绑定到属性,但它没有更新..

Private Sub GetBCOMSUserCallback(ByVal sender As Object, ByVal e As GetBCOMSUserCompletedEventArgs)
        Try
            If Not e.Result.IsFault Then
                Dim usr As BCOMSUser = e.Result.Response 
                CurrentUser = usr
                'SetupMenu()
                OnCommandCompleted(Function(x) x.GetBCOMSUserCommand)
            Else
                OnError(New BCOMSException With {
                            .GeneralErrorMessage = "Fail to retrieve User.",
                            .DetailErrorMessage = e.Result.FaultMessage
                        })
            End If
        Catch ex As Exception
            OnError(ex)
        Finally
            TaskSvc.RemoveCallback_GetBCOMSUser(AddressOf GetBCOMSUserCallback)
        End Try
    End Sub
4

0 回答 0