【发布时间】: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)
{
}
【问题讨论】: