Every time I use RadWindow e.g:
RadWindow.Alert(new DialogParameters() { Content = "Hello" });
i get following binding error:
System.Windows.Data Error: 5 : Value produced by BindingExpression is not valid for target property.; Value='<null>' BindingExpression:Path=(0); DataItem='RadWindow' (Name=''); target element is 'WindowHostWindow' (Name=''); target property is 'Title' (type 'String')
I even tested it on visual studio base wpf app template - still the same error.
Is there any way to fix it ?
<telerik:RadGridView Height="Auto" Width="Auto" x:Name="RadGridViewBilling" RowLoaded="RadGridView_RowLoaded" Margin="5 0 5 5" Visibility="Visible" RowDetailsVisibilityMode="Collapsed"
RowIndicatorVisibility="Collapsed" IsReadOnly="True" AutoGenerateColumns="False" CanUserFreezeColumns="False" Grid.Row="2"
CanUserResizeColumns="False" SelectionMode="Extended" ShowColumnFooters="True" SelectionChanged="RadGridViewBilling_SelectionChanged">
<telerik:RadGridView.RowStyle>
<Style TargetType="telerik:GridViewRow">
<Setter Property="MinHeight" Value="40"/>
</Style>
</telerik:RadGridView.RowStyle>
<telerik:RadGridView.Columns>
<telerik:GridViewSelectColumn />
<telerik:GridViewToggleRowDetailsColumn />
<telerik:GridViewDataColumn Header="No" DataMemberBinding="{Binding Number}" IsGroupable="False" IsFilterable="False"/>
<telerik:GridViewDataColumn Header="Role T" DataMemberBinding="{Binding RoleTech}" IsGroupable="False" IsFilterable="False" TextAlignment="Right" DataFormatString = "{}{0:c2}" />
<telerik:GridViewDataColumn Header="Role P" DataMemberBinding="{Binding RoleProf}" IsGroupable="False" IsFilterable="False" TextAlignment="Right" DataFormatString = "{}{0:c2}" />
<telerik:GridViewDataColumn Header="Montant soumis ($)" DataMemberBinding="{Binding AmountSubmitted}" >
<telerik:GridViewDataColumn.AggregateFunctions>
<telerik:SumFunction Caption="Somme: " ResultFormatString="{}{0:c2}" SourceField="AmountSubmitted"/>
</telerik:GridViewDataColumn.AggregateFunctions>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="Patient" DataMemberBinding="{Binding PatientName}"/>
<telerik:GridViewDataColumn Header="Erreur courante" DataMemberBinding="{Binding ErrorDescription}" Background="#A0FF0000"/>
</telerik:RadGridView.Columns>
<telerik:RadGridView.RowDetailsTemplate>
<DataTemplate>
<telerik:RadTabControl x:Name="RadTabControl1" BackgroundVisibility="Collapsed" Margin="10" VerticalAlignment="Center" Background="Transparent">
<telerik:RadTabItem Header="Transactions" DataContext="{Binding}" Height="24" Foreground="Black">
<telerik:RadGridView Height="Auto" Width="Auto" x:Name="RadGridViewTransactions" ItemsSource="{Binding Transactions}" AutoGenerateColumns="False"
CanUserFreezeColumns="False" BorderThickness="0" CanUserResizeColumns="False"
ShowGroupPanel="False"
Margin="0">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="No" DataMemberBinding="{Binding Sequence}" IsGroupable="False" IsFilterable="False" />
<telerik:GridViewDataColumn Header="Date" DataMemberBinding="{Binding CreationTime, Converter={StaticResource DConverter}}" />
<telerik:GridViewDataColumn Header="Heure" DataMemberBinding="{Binding CreationTime, Converter={StaticResource TConverter}}" IsFilterable="False" IsGroupable="False"/>
<telerik:GridViewDataColumn Header="Type" DataMemberBinding="{Binding TransactionType}" />
<telerik:GridViewDataColumn Header="Montant" DataMemberBinding="{Binding Amount}" TextAlignment="Right" DataFormatString = "{}{0:c2}" IsReadOnly="True" />
<telerik:GridViewDataColumn Header="Balance" DataMemberBinding="{Binding Balance}" TextAlignment="Right" DataFormatString = "{}{0:c2}" IsReadOnly="True" />
<telerik:GridViewDataColumn Header="Commentaire" DataMemberBinding="{Binding Comment}" Width="250" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</telerik:RadTabItem>
<telerik:RadTabItem Header="Visite" DataContext="{Binding}" Margin="5 0 0 0" Height="24" Foreground="Black">
<Grid Width="Auto" HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Text="Patient PHN:" TextAlignment="Right" Margin="5" FontWeight="Bold" Grid.Row="0" Grid.Column="0" />
<telerik:RadMaskedTextBox x:Name="VisitPatientPHN" Value="{Binding PHN}" EmptyContent="Entrer patient PHN" MaskType="None" ValueChanged="RadMaskedTextBox_ValueChanged" Margin="5" Grid.Row="0" Grid.Column="1"/>
<TextBlock Text="Nom:" TextAlignment="Right" Margin="5" FontWeight="Bold" Grid.Row="1" Grid.Column="0" />
<telerik:RadMaskedTextBox x:Name="VisitPatientName" Value="{Binding PatientName}" EmptyContent="Entrez nom patient" MaskType="None" ValueChanged="RadMaskedTextBox_ValueChanged" Margin="5" Grid.Row="1" Grid.Column="1"/>
<TextBlock Text="Province:" TextAlignment="Right" Margin="5" FontWeight="Bold" Grid.Row="2" Grid.Column="0" />
<TextBox Text="{Binding PatientProvince}" Margin="5" Grid.Row="2" Grid.Column="1" />
<TextBlock Text="Date visite:" TextAlignment="Right" Margin="5" FontWeight="Bold" Grid.Row="0" Grid.Column="3" />
<telerik:RadDatePicker x:Name="FromTimePicker" Margin="5" IsTooltipEnabled="False" SelectionChanged="FromTimePicker_SelectionChanged" DateTimeWatermarkContent="VisitDate" SelectedValue="{Binding VisitDate, Mode=TwoWay}" Grid.Row="0" Grid.Column="4" />
<TextBlock Text="Code diag:" TextAlignment="Right" Margin="5" FontWeight="Bold" Grid.Row="1" Grid.Column="3" />
<TextBox Text="{Binding DiagCode}" Margin="5" Grid.Row="1" Grid.Column="4" />
<TextBlock Text="Code exam:" TextAlignment="Right" Margin="5" FontWeight="Bold" Grid.Row="2" Grid.Column="3" />
<TextBox Text="{Binding ExamCode}" Margin="5" Grid.Row="2" Grid.Column="4" />
<TextBlock Text="Mnt soumis:" TextAlignment="Right" Margin="5" FontWeight="Bold" Grid.Row="3" Grid.Column="3" />
<telerik:RadMaskedTextBox x:Name="VisitAmountSubmitted" MaskType="Numeric" Mask="c" Value="{Binding AmountSubmitted}" EmptyContent="Entrer montant" Background="White" ValueChanged="RadMaskedTextBox_ValueChanged" Margin="5" Grid.Row="3" Grid.Column="4"/>
<TextBlock Text="Commentaire:" TextAlignment="Left" Margin="5" FontWeight="Bold" Grid.Row="4" Grid.Column="0" />
<TextBox Text="{Binding Comment}" Margin="5" Grid.Row="4" Grid.Column="1" Grid.ColumnSpan="4" />
</Grid>
</telerik:RadTabItem>
<telerik:RadTabItem Header="Rapport d'erreurs" DataContext="{Binding}" Height="24"
HorizontalContentAlignment="Stretch" HorizontalAlignment="Left">
<telerik:RadGridView Height="Auto" Width="Auto" x:Name="RadGridViewErrorReportElements" ItemsSource="{Binding ErrorReportElements}" RowIndicatorVisibility="Collapsed" AutoGenerateColumns="False"
CanUserFreezeColumns="False" BorderThickness="0" CanUserResizeColumns="False"
ShowGroupPanel="False"
Margin="0">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="Nom fichier" DataMemberBinding="{Binding ReceivedFileName}" />
<telerik:GridViewDataColumn Header="Date" DataMemberBinding="{Binding CreationTime, Converter={StaticResource DConverter}}" />
<telerik:GridViewDataColumn Header="Heure" DataMemberBinding="{Binding CreationTime, Converter={StaticResource TConverter}}" IsFilterable="False" IsGroupable="False"/>
<telerik:GridViewDataColumn Header="Message d'erreur" DataMemberBinding="{Binding ErrorMessage}" Width="250" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</telerik:RadTabItem>
<telerik:RadTabItem Header="E.C." DataContext="{Binding}" Margin="5 0 0 0" Height="24" HorizontalContentAlignment="Stretch" HorizontalAlignment="Left">
<telerik:RadGridView Height="Auto" Width="Auto" x:Name="RadGridViewRemittanceAdvicetElements" ItemsSource="{Binding RemittanceAdvicetElements}" RowIndicatorVisibility="Collapsed" AutoGenerateColumns="False"
CanUserFreezeColumns="False" BorderThickness="0" CanUserResizeColumns="False"
ShowGroupPanel="False"
Margin="0">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="Nom fichier" DataMemberBinding="{Binding ReceivedFileName}" />
<telerik:GridViewDataColumn Header="Date" DataMemberBinding="{Binding CreationTime, Converter={StaticResource DConverter}}" />
<telerik:GridViewDataColumn Header="Heure" DataMemberBinding="{Binding CreationTime, Converter={StaticResource TConverter}}" IsFilterable="False" IsGroupable="False"/>
<telerik:GridViewDataColumn Header="Montant soumis" DataMemberBinding="{Binding AmountSubmitted}" TextAlignment="Right" DataFormatString = "{}{0:c2}" IsReadOnly="True" />
<telerik:GridViewDataColumn Header="Montant payé" DataMemberBinding="{Binding AmountPaid}" TextAlignment="Right" DataFormatString = "{}{0:c2}" IsReadOnly="True" />
<telerik:GridViewDataColumn Header="Message d'erreur" DataMemberBinding="{Binding ErrorMessage}" Width="250" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</telerik:RadTabItem>
<telerik:RadTabItem Header="Factures reliées " DataContext="{Binding}" Margin="5 0 0 0" Height="24" HorizontalContentAlignment="Stretch" HorizontalAlignment="Left">
<telerik:RadGridView Height="Auto" Width="Auto" x:Name="RadGridViewR" ItemsSource="{Binding RelatedBills}" RowIndicatorVisibility="Collapsed" AutoGenerateColumns="False"
CanUserFreezeColumns="False" BorderThickness="0" CanUserResizeColumns="False"
ShowGroupPanel="False"
Margin="0">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="No" DataMemberBinding="{Binding Number}" IsGroupable="False" IsFilterable="False" />
<telerik:GridViewDataColumn Header="Montant soumis ($)" TextAlignment="Right" DataMemberBinding="{Binding AmountSubmitted}" />
<telerik:GridViewDataColumn Header="Patient" DataMemberBinding="{Binding PatientName}"/>
<telerik:GridViewDataColumn Header="Erreur courante" DataMemberBinding="{Binding ErrorDescription}" Width="250"/>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</telerik:RadTabItem>
</telerik:RadTabControl>
</DataTemplate>
</telerik:RadGridView.RowDetailsTemplate>
</telerik:RadGridView>
System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: index
at Telerik.Windows.Controls.GridView.GridViewDataControl.CommitCurrentEdit(GridViewRow gridViewRow)
at Telerik.Windows.Controls.GridView.GridViewDataControl.PerformRowEditEnded(GridViewCell currentCell)
at Telerik.Windows.Controls.GridView.GridViewDataControl.CommitCellEdit(GridViewCell currentCell, Boolean isLeavingRow)
at Telerik.Windows.Controls.GridView.GridViewDataControl.OnItemsChanged(NotifyCollectionChangedEventArgs e)
at Telerik.Windows.Controls.GridView.BaseItemsControl.OnItemCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e)
at System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
at Telerik.Windows.Data.DataItemCollection.OnCollectionViewCollectionChanged(NotifyCollectionChangedEventArgs e)
at Telerik.Windows.Data.QueryableCollectionView.RefreshOverride()
at Telerik.Windows.Data.QueryableCollectionView.RefreshInternal()
at System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
(More that was removed, but entry point from our code)
<telerik:RadGridView x:Name="GridView" ItemsSource="{Binding DataView}" Width="700" MinHeight="386" MaxHeight="500" .........</telerik:RadGridView><telerik:RadDataPager PageSize="100" Grid.Row="1" Source="{Binding DataView}" />public VirtualQueryableCollectionView<VSOEChageItemViewModel> DataView { get { if (_DataView == null) { _DataView = new VirtualQueryableCollectionView<VSOEChageItemViewModel>() { LoadSize = 40, VirtualItemCount = 40 }; _DataView.ItemsLoading += DataViewItemsLoading; } return _DataView; } private set { if (_DataView != null) { _DataView.ItemsLoading -= DataViewItemsLoading; } _DataView = value; if (_DataView != null) { _DataView.ItemsLoading += DataViewItemsLoading; } } }private void DataViewItemsLoading(object sender, VirtualQueryableCollectionViewItemsLoadingEventArgs e) { string filertString = GetFilertString(); var sort = DataView.SortDescriptors; var sortString = sort.ToDynamicLinq(); if (!string.IsNullOrEmpty(sortString)) sortString = sortString.Remove(0, sortString.IndexOf(".") + 1); int allCount = 0; List<VSOEChageItemViewModel> dd1 = LoadData(filertString, sortString, e.StartIndex, e.ItemCount, out allCount); if (allCount != DataView.VirtualItemCount) { DataView.VirtualItemCount = allCount; } DataView.Load(e.StartIndex, dd1); }
DataProvider.csnamespace SampleLinqToSQL{ public static class DataProvider { private static NorthwindDataContext dataContext = null; public static NorthwindDataContext DataContext { get { return dataContext; } } static DataProvider() { dataContext = new NorthwindDataContext(); } public static void SetDataContext(string connectionString) { dataContext = null; dataContext = new NorthwindDataContext(connectionString); } }}MainWindow.xaml<Window x:Class="SampleLinqToSQL.MainWindow" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" Title="MainWindow" Height="350" Width="525"> <DockPanel LastChildFill="True"> <StackPanel DockPanel.Dock="Bottom" HorizontalAlignment="Right" Orientation="Horizontal"> <Button x:Name="SaveBtn" Width="50" Height="25" Margin="5" Click="SaveBtn_Click">Save</Button> <Button x:Name="CancelBtn" Width="50" Height="25" Margin="5" Click="CancelBtn_Click">Cancel</Button> </StackPanel> <ListBox x:Name="TableNames" DockPanel.Dock="Left" Width="140" MouseDoubleClick="TableNames_MouseDoubleClick"></ListBox> <Border> <DockPanel x:Name="DocumentArea"> <telerik:RadGridView x:Name="dataGridView" AutoGenerateColumns="True" ItemsSource="{Binding}" /> </DockPanel> </Border> </DockPanel></Window>MainWindow.xaml.csnamespace SampleLinqToSQL{ /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { private string sqlConnection = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Path\Northwind.mdf;Integrated Security=True;User Instance=True"; public MainWindow() { InitializeComponent(); DataProvider.SetDataContext(sqlConnection); LoadTableNames(); } private void LoadTableNames() { List<string> tableNames = new List<string>(); foreach (PropertyInfo item in DataProvider.DataContext.GetType().GetProperties()) { tableNames.Add(item.Name); } tableNames = tableNames.OrderBy(s => s).ToList(); TableNames.ItemsSource = tableNames; } private void SaveBtn_Click(object sender, RoutedEventArgs e) { DataProvider.DataContext.SubmitChanges(); } private void CancelBtn_Click(object sender, RoutedEventArgs e) { //TODO } private void TableNames_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (TableNames.SelectedItem != null) { dataGridView.DataContext = DataProvider.DataContext.GetTableByName(TableNames.SelectedItem.ToString()).AsParallel(); } } }}