or
namespace LTD.Desktop.Common |
{ |
public class RadPaneGroupRegionAdapter : RegionAdapterBase<RadPaneGroup> |
{ |
public RadPaneGroupRegionAdapter(IRegionBehaviorFactory regionBehaviorFactory) |
: base(regionBehaviorFactory) |
{ |
} |
protected override void Adapt(IRegion region, RadPaneGroup regionTarget) |
{ |
region.Views.CollectionChanged += (s, e) => |
{ |
switch (e.Action) |
{ |
case NotifyCollectionChangedAction.Add: |
foreach (var item in e.NewItems.OfType<RadPane>()) |
{ |
regionTarget.AddItem(item, Telerik.Windows.Controls.Docking.DockPosition.Center); |
} |
break; |
case NotifyCollectionChangedAction.Remove: |
foreach (var item in e.OldItems.OfType<RadPane>()) |
{ |
item.RemoveFromParent(); |
} |
break; |
case NotifyCollectionChangedAction.Replace: |
{ |
var oldItems = e.OldItems.OfType<RadPane>(); |
var newItems = e.NewItems.OfType<RadPane>(); |
var newItemsEnumerator = newItems.GetEnumerator(); |
foreach (var oldItem in oldItems) |
{ |
var parent = oldItem.Parent as ItemsControl; |
if (parent != null && parent.Items.Contains(oldItem)) |
{ |
parent.Items[parent.Items.IndexOf(oldItem)] = newItemsEnumerator.Current; |
if (!newItemsEnumerator.MoveNext()) |
{ |
break; |
} |
} |
else |
{ |
oldItem.RemoveFromParent(); |
regionTarget.Items.Add(newItemsEnumerator.Current); |
} |
} |
} |
break; |
case NotifyCollectionChangedAction.Reset: |
regionTarget |
.EnumeratePanes() |
.ToList() |
.ForEach(p => p.RemoveFromParent()); |
break; |
default: |
break; |
} |
}; |
foreach (var view in region.Views.OfType<RadPane>()) |
{ |
regionTarget.Items.Add(view); |
} |
} |
protected override IRegion CreateRegion() |
{ |
return new AllActiveRegion(); |
} |
} |
} |
namespace LTD.Examples.Modularity.Views |
{ |
/// <summary> |
/// Interaction logic for ExampleView.xaml |
/// </summary> |
public partial class ExampleView : RadDocumentPane |
{ |
public ExampleView() |
{ |
InitializeComponent(); |
} |
} |
} |
<telerik:RadDocumentPane x:Class="LTD.Examples.Modularity.Views.ExampleView" |
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" |
Header="Example panel"/> |
<!-- Workspaces container --> |
<telerik:RadDocking Name="Workspaces" DockPanel.Dock="Bottom" cal:RegionManager.RegionName="Workspaces"> |
<telerik:RadDocking.DocumentHost> |
<telerik:RadSplitContainer> |
<telerik:RadPaneGroup cal:RegionManager.RegionName="MainRegion" /> |
</telerik:RadSplitContainer> |
</telerik:RadDocking.DocumentHost> |
</telerik:RadDocking> |
For some strange reason, the gridview edit mode for a column that is string binded, accepts only numeric values. What could be wrong
<telerik:RadGridView Name="rgvSiteDetails" Margin="10,10,10,10" Height="340" RowIndicatorVisibility="Collapsed" |
ShowGroupPanel="False" AutoGenerateColumns="False" Visibility="Visible" Background="Transparent" |
AutoGenerateHierarchyFromDataSet="False" BorderBrush="LightGray" CanUserFreezeColumns="False" CanUserInsertRows="False" |
HorizontalContentAlignment="Stretch" ShowColumnHeaders="True" IsFilteringAllowed="False" |
VerticalGridlinesBrush="LightGray" > |
<telerik:RadGridView.Columns> |
<telerik:GridViewDataColumn UniqueName="IsSelected" DataMemberBinding="{Binding IsSelected}" Header="" Width="30" /> |
<telerik:GridViewDataColumn UniqueName="SiteSequence" Header="" Width="30" DataMemberBinding="{Binding SiteSequence}" /> |
<telerik:GridViewDataColumn UniqueName="SiteName" Header="SiteName" DataMemberBinding="{Binding SiteName}" Width="120" /> |
<telerik:GridViewDataColumn UniqueName="SiteShortName" Header="SiteShortName" DataMemberBinding="{Binding SiteShortName}" Width="120"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="ReceivedDate" IsVisible="True" Header="Received Date" Width="80" DataMemberBinding="{Binding ReceivedDate}" /> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="PatientLastName" Header="Patient Last Name" IsVisible="True" Width="120" DataMemberBinding="{Binding PatientLastName}" /> |
<telerik:GridViewDataColumn x:Name="gdcCassetteId" UniqueName="CassetteID" IsVisible="False" Header="Cassette Id" Width="80" DataMemberBinding="{Binding CassetteID}" /> |
<telerik:GridViewDataColumn x:Name="gdcSlideId" UniqueName="DisplayName" Header="Display Name" IsVisible="False" DataMemberBinding="{Binding DisplayName}" /> |
<telerik:GridViewDataColumn x:Name="gdcDisplayName" UniqueName="DisplayName" Header="Display Name" IsVisible="False" DataMemberBinding="{Binding DisplayName}" /> |
<telerik:GridViewDataColumn x:Name="gdcProcedureName" UniqueName="ProcedureName" Header="Procedure Name" IsVisible="False" DataMemberBinding="{Binding DisplayName}" /> |
<telerik:GridViewDataColumn x:Name="gdcLevelInfo" UniqueName="LevelInfo" Header="Level Info" IsVisible="False" DataMemberBinding="{Binding DisplayName}" /> |
<telerik:GridViewDataColumn x:Name="gdcmagazineid" UniqueName="magazineid" IsVisible="False" Header="Magazine Id" DataMemberBinding="{Binding magazineid}" /> |
<telerik:GridViewDataColumn x:Name="gdcbin" UniqueName="bin" Header="Exit Bin" IsVisible="False" DataMemberBinding="{Binding bin}" /> |
</telerik:RadGridView.Columns> |
</telerik:RadGridView> |
private void rgvSiteDetails_CurrentCellChanged(object sender, GridViewCurrentCellChangedEventArgs e) |
{ |
this.rgvSiteDetails.BeginEdit(); |
} |
SharedData.lstSelectedCaseData = new ObservableCollection<SharedData.SelectedCaseData>(); |
rgvSiteDetails.DataLoaded += new EventHandler<EventArgs>(rgvSiteDetails_DataLoaded); |
foreach (CaseDataCase item in SharedData.objCurrent.Items) |
{ |
if (item.Specimen != null) |
foreach (CaseDataCaseSpecimen item2 in item.Specimen) |
{ |
SharedData.SelectedCaseData a = new SharedData.SelectedCaseData(); |
a.CaseId = item.CaseId; |
a.AccessionNumber = item.AccessionNumber; |
a.ReceivedDate = item.ReceivedDate; |
a.PatientLastName = item.Patient[0].PatientLastName; |
a.IsSelected = true; |
a.SiteName = item2.SiteName; |
a.SiteSequence = item2.SiteSequence; |
a.SiteShortName = item2.SiteShortName; |
a.SiteID = item2.SiteID; |
SharedData.lstSelectedCaseData.Add(a); |
} |
} |
rgvSiteDetails.ItemsSource = SharedData.lstSelectedCaseData; |
void rgvSiteDetails_DataLoaded(object sender, EventArgs e) |
{ |
try |
{ |
SharedData.Log.Info("Entering rgvSiteDetails_DataLoaded"); |
rgvSiteDetails.ExpandAllGroups(); |
SharedData.Log.Info("Exiting rgvSiteDetails_DataLoaded"); |
} |
catch (Exception ex) |
{ |
SharedMethods.HandleExceptions(ex); |
} |
} |