public class ValueToColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
var brush = new SolidColorBrush(Colors.Black);
Double doubleValue = 0.0;
Double.TryParse(value.ToString(), out doubleValue);
if (doubleValue < 0)
brush =
new SolidColorBrush(Colors.Red);
return brush;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
public class TargetExposureConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
if (values == null)
return null;
if (values.Length != 2)
throw new ApplicationException("Expecting 2 parameters in TargetExposureConverter");
var targetExposureCmdParameter = new TargetExposureEditedCmdParam();
decimal value;
decimal.TryParse(System.Convert.ToString(values[0]), out value);
targetExposureCmdParameter.TargetExposure = value;
var targetExposureCell = values[1] as GridViewCell;
if (targetExposureCell != null && targetExposureCell.ParentRow != null)
{
targetExposureCmdParameter.CurrentRow = targetExposureCell.ParentRow.Item
as CcyExposureCurrencySummary;
}
return targetExposureCmdParameter;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
public class RadMaskedInputValueChangingBehavior : Behavior<RadMaskedInputBase>
{
protected override void OnAttached()
{
base.OnAttached();
AssociatedObject.ValueChanging += OnValueChanging;
}
protected override void OnDetaching()
{
base.OnDetaching();
AssociatedObject.ValueChanging -= OnValueChanging;
}
void OnValueChanging(object sender, RadMaskedInputValueChangingEventArgs e)
{
var maskedInputControl = sender as RadMaskedNumericInput;
if (maskedInputControl == null)
return;
if (e.NewValue == null)
return;
double newVal;
if (!double.TryParse(Convert.ToString(e.NewValue), out newVal))
return;
maskedInputControl.Foreground = newVal < 0
?
Brushes.Red
:
Brushes.Black;
}
}
<telerik:RadDocking PreviewClose="RadDocking_PreviewClose" x:Name="dock"> <telerik:RadDocking.DocumentHost> <telerik:RadSplitContainer > <telerik:RadPaneGroup prism:RegionManager.RegionName="{x:Static const:RegionConstants.CentralRegionName}" x:Name="centralGroup" /> </telerik:RadSplitContainer> </telerik:RadDocking.DocumentHost> <telerik:RadSplitContainer x:Name="leftContainer" InitialPosition="DockedLeft"> <!-- Menu --> <telerik:RadPaneGroup x:Name="MenuGroup"> <telerik:RadPane x:Name="MenuPanel" Header="Menu" CanUserClose="False"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="*" /> </Grid.RowDefinitions> <telerik:RadTreeView x:Name="principalMenuTreeView" Grid.Row="1" VerticalAlignment="Stretch" IsLineEnabled="True" ScrollViewer.HorizontalScrollBarVisibility="Auto" SelectionMode="Single" IsEditable="False" IsDragDropEnabled="True"> <telerik:RadTreeViewItem Header="Monitoring" IsExpanded="True"> <telerik:RadTreeViewItem Header="All Customers" Command="{Binding LoadViewCommand}" CommandParameter="{x:Static const:ViewConstants.AllCustomersView}" /> </telerik:RadTreeViewItem> </telerik:RadTreeView> </Grid> </telerik:RadPane> </telerik:RadPaneGroup> </telerik:RadSplitContainer></telerik:RadDocking>private void DisplayViewCommand(object viewName){ IRegion region = this.regionManager.Regions[RegionConstants.CentralRegionName]; object view = null; switch (viewName as string) { case ViewConstants.AllCustomersView: view = ServiceLocator.Current.GetInstance<AllCustomersView>(); break; default: break; } if (region.Views.Contains(view)) { region.Remove(view); } region.Add(view); region.Activate(view);}private void RadDocking_PreviewClose(object sender, StateChangeEventArgs e){ if (e.Panes != null && e.Panes.Count() > 0) { RadPane toDelete = e.Panes.FirstOrDefault(); IRegion mainRegion = this.regionManager.Regions[RegionConstants.CentralRegionName]; if (mainRegion.Views.Contains(toDelete)) { mainRegion.Remove(toDelete); } } e.Handled = true;}case NotifyCollectionChangedAction.Reset: regionTarget .EnumeratePanes() .ToList() .ForEach(p => p.RemoveFromParent()); foreach (object view in region.Views) { regionTarget.Items.Add(view); /!\ On this line, the exception occurs } break;