【问题标题】:WPF - Close RadPane Programatically using C#WPF - 使用 C# 以编程方式关闭 RadPane
【发布时间】:2015-03-24 18:23:54
【问题描述】:

我想以编程方式关闭 RadPane。如何获取当前的 RadPane 以及如何触发关闭事件?

 <telerik:RadButton Content="Close" x:Name="button4" Command="{Binding ClosePaneCommand}" />   

 public ICommand ClosePaneCommand
    {
        get
        {
            return new RelayCommand(ClosePaneExecute);
        }
    }

我做了一些研究并提出了以下代码。

 RadPaneGroup container = App.Current.MainWindow.FindName(ContentContainerName) as RadPaneGroup;

        foreach (RadPane pane in container.Items)
        {
            if (pane.Content.GetType() == typeof(ScrollViewer))
            {
                ScrollViewer scrollViewer = pane.Content as ScrollViewer;
                if (scrollViewer.Content.GetType().BaseType == typeof(UserControl))
                {
                    UserControl control = scrollViewer.Content as UserControl;
                    ContentViewModel contentViewModel = control.DataContext as ContentViewModel;
                    //Here is my Question
                    if (contentViewModel == viewModel)
                    {
                        pane.RemoveFromParent();
                        break;
                    }
                }
            }
        }

我们如何比较这两个 ViewModel 以及如何获取当前的 ViewModel ?

 if (contentViewModel == viewModel)
{
}

【问题讨论】:

    标签: c# wpf mvvm telerik


    【解决方案1】:

    好吧,我们可以这样删除。

     RadPaneGroup container = App.Current.MainWindow.FindName(ContentContainerName) as RadPaneGroup;
    
    foreach (RadPane pane in container.Items)
     {
      if (pane.IsActive)
      {
        pane.RemoveFromParent();
        break;
      }
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-07
      • 2021-12-29
      • 2013-08-08
      • 2015-03-17
      相关资源
      最近更新 更多