or
<telerik:RadRibbonTab x:Class="TestTabLibrary.RibbonTabView" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" xmlns:cal="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro" Header="Plugin Test"> <telerik:RadRibbonGroup Header="TestGoup 1"> <telerik:RadRibbonButton Text="Button 1" cal:Message.Attach="[Event Click] = [Action Group1Button1]"/> <telerik:RadRibbonButton Text="Button 2" cal:Message.Attach="[Event Click] = [Action Group1Button2]"/> </telerik:RadRibbonGroup> <telerik:RadRibbonGroup Header="TestGoup 2"> <telerik:RadRibbonButton Text="Button 1" cal:Message.Attach="[Event Click] = [Action Group2Button1]"/> <telerik:RadRibbonButton Text="Button 2" cal:Message.Attach="[Event Click] = [Action Group2Button2]"/> </telerik:RadRibbonGroup></telerik:RadRibbonTab>public class RibbonTabViewModel : IViewModel { public void Group1Button1() { Console.WriteLine("Group1Button1"); } public void Group1Button2() { Console.WriteLine("Group1Button2"); } public void Group2Button1() { Console.WriteLine("Group2Button1"); } public void Group2Button2() { Console.WriteLine("Group2Button2"); } }public class AppBootstrapper : Bootstrapper<MainViewModel> { public static readonly Container PublicContainer = new Container(); readonly string _pluginDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Plugins"); protected override void Configure() { PublicContainer.Register<IWindowManager, WindowManager>(Lifestyle.Singleton); PublicContainer.Register<IEventAggregator, EventAggregator>(Lifestyle.Singleton); PublicContainer.Register<MainViewModel>(); var pluginAssemblies = from file in new DirectoryInfo(_pluginDirectory).GetFiles() where file.Extension == ".dll" select Assembly.LoadFile(file.FullName); var pluginTabItemsView = from dll in pluginAssemblies from type in dll.GetExportedTypes() where typeof(ITabItem).IsAssignableFrom(type) where !type.IsAbstract where !type.IsGenericTypeDefinition select type; PublicContainer.RegisterAll<ITabItem>(pluginTabItemsView); var pluginTabItemsViewModel = from dll in pluginAssemblies from type in dll.GetExportedTypes() where typeof(IViewModel).IsAssignableFrom(type) where !type.IsAbstract where !type.IsGenericTypeDefinition select type; PublicContainer.RegisterAll<IViewModel>(pluginTabItemsViewModel); PublicContainer.Verify(); } protected override IEnumerable<object> GetAllInstances(Type service) { return PublicContainer.GetAllInstances(service); } protected override object GetInstance(Type service, string key) { return PublicContainer.GetInstance(service); } }<telerik:RadRibbonWindow x:Class="EtaStudio.View.MainView" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" Title="MainView" Height="300" Width="300"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <telerik:RadRibbonView Grid.Row="0" ApplicationName="Eta Studio" ItemsSource="{Binding Items}"/> </Grid></telerik:RadRibbonWindow>public class MainViewModel : Conductor<ITabItem>.Collection.OneActive { public MainViewModel() { IEnumerable<ITabItem> instances = AppBootstrapper.PublicContainer.GetAllInstances<ITabItem>(); Items.AddRange(instances); } }<Views:CustomViewBase.RibbonInformation> <entities:RibbonInformation Header="Operation"> <entities:RibbonInformation.RibbonGroups> <telerik:RadRibbonGroup x:Name="UIRibbonToolbar" Header="Controls"> <telerik:RadRibbonButton Text="Back" Size="Large" LargeImage="/Images/Back.bmp" Click="RadRibbonButton_Click_Back" Name="RadRibbonButton_Back" IsEnabled="True"/> <telerik:RadRibbonButton Text="Play" Size="Large" LargeImage="/Images/Play.bmp" Click="RadRibbonButton_Click_Play" Name="RadRibbonButton_Play" IsEnabled="True"/> <telerik:RadRibbonButton Text="Stop" Size="Large" LargeImage="/Images/Stop.bmp" Click="RadRibbonButton_Click_Stop" Name="RadRibbonButton_Stop" IsEnabled="True"/> </telerik:RadRibbonGroup> </entities:RibbonInformation.RibbonGroups> </entities:RibbonInformation></Views:CustomViewBase.RibbonInformation>private void RadRibbonButton_Click_Stop(object sender, RoutedEventArgs e){ this.IsEnabled = false; MessageBox.Show("Stop Button Pressed");}private void RadRibbonButton_Click_Play(object sender, RoutedEventArgs e){ this.IsEnabled = false; MessageBox.Show("Play Button Pressed");}private void RadRibbonButton_Click_Back(object sender, RoutedEventArgs e){ this.IsEnabled = false; MessageBox.Show("Back Button Pressed");}<Window xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" x:Class="WpfApplication2.MainWindow" Title="MainWindow" Height="350" Width="525" > <Grid> <StackPanel> <Button Content="Push" Click="Button_Click" /> <telerik:RadGridView ItemsSource="{Binding Data}" ColumnWidth="100" MaxColumnWidth="100"/> </StackPanel> </Grid></Window>
Designer:
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public IEnumerable<DataItem> Data {get;set;}
private void Button_Click(object sender, RoutedEventArgs e)
{
var data = new List<DataItem>();
for (int i = 0; i < 5000; i++)
{
data.Add(new DataItem());
}
this.Data = data;
this.DataContext = this;
}
}
public class DataItem
{
public string Col {get;set;}
public string Col2 { get; set; }
public string Col3 { get; set; }
public string Col4 { get; set; }
public string Col5 { get; set; }
public string Col6 { get; set; }
public string Col7 { get; set; }
public string Col8 { get; set; }
public string Col9 { get; set; }
public string Col0 { get; set; }
public string Col11 { get; set; }
public string Col12 { get; set; }
public string Col13 { get; set; }
public string Col14 { get; set; }
}
I should add that this is using version 2012.2.912.40 of the WPF RadGridView component in a .NET 4.5 WPF application.
grid.UnselectAll();grid.SelectedItems.Add(element);.... do this for all selected elements .....grid.ItemContainerGenerator.ContainerFromItem(item) as GridViewRow