From 19ecb6e97caed7dfc6b04f8285aef05bd68dfabd Mon Sep 17 00:00:00 2001 From: martinivanoff Date: Thu, 28 Jan 2016 12:18:53 +0200 Subject: [PATCH] Weekly examples update --- .../SL/IndividualAxisZooming/Resources.xaml | 260 ------------------ ChartView/SL/SeriesProvider/MyDataObject.cs | 10 - ChartView/SL/SeriesProvider/MyViewModel.cs | 50 ---- .../SeriesProvider/SeriesProviderDataItem.cs | 10 - .../WPF/IndividualAxisZooming/Resources.xaml | 252 ----------------- ChartView/WPF/SeriesProvider/MyDataObject.cs | 10 - ChartView/WPF/SeriesProvider/MyViewModel.cs | 50 ---- .../SeriesProvider/SeriesProviderDataItem.cs | 10 - DateTimePicker/TodayButton/Readme.txt | 8 +- .../CreateCustomDateTimePickerColumn/App.xaml | 15 - .../App_SL.xaml | 15 - .../CreateCustomDateTimePickerColumn/Club.cs | 91 ------ .../CreateCustomDateTimePickerColumn_SL.sln | 21 -- .../CreateCustomDateTimePickerColumn_WPF.sln | 21 -- .../GenericDateTimePicker.xaml | 26 -- .../GenericDateTimePicker.xaml.cs | 42 --- .../GenericDateTimePickerColumn.cs | 35 --- .../GenericDateTimePickerSL.xaml | 26 -- .../GenericDateTimePickerSL.xaml.cs | 55 ---- .../MainPage.xaml | 19 -- .../MainWindow.xaml | 18 -- .../Readme.txt | 12 - GridView/DeferredSearching/App.xaml | 8 + GridView/DeferredSearching/App.xaml.cs | 16 ++ .../DeferredSearching_WPF.csproj} | 28 +- GridView/DeferredSearching/MainWindow.xaml | 29 ++ GridView/DeferredSearching/MainWindow.xaml.cs | 27 ++ GridView/DeferredSearching/MyViewModel.cs | 28 ++ GridView/DeferredSearching/Player.cs | 110 ++++++++ .../Properties/AssemblyInfo.cs | 4 +- GridView/DeferredSearching/Readme.txt | 4 + GridView/GridView_SL.sln | 12 + GridView/GridView_WPF.sln | 24 ++ GridView/ReusingControlPanelItems/App.config | 6 + GridView/ReusingControlPanelItems/App.xaml | 8 + GridView/ReusingControlPanelItems/App.xaml.cs | 17 ++ GridView/ReusingControlPanelItems/App_SL.xaml | 8 + .../App_SL.xaml.cs | 2 +- GridView/ReusingControlPanelItems/Club.cs | 123 +++++++++ .../IdentityConverter.cs | 27 ++ .../ReusingControlPanelItems/MainPage.xaml | 69 +++++ .../ReusingControlPanelItems/MainPage.xaml.cs | 22 ++ .../ReusingControlPanelItems/MainWindow.xaml | 69 +++++ .../MainWindow.xaml.cs | 28 ++ .../ReusingControlPanelItems/MyViewModel.cs | 78 ++++++ .../Properties/AppManifest.xml | 0 .../Properties/AssemblyInfo.cs | 55 ++++ GridView/ReusingControlPanelItems/Readme.txt | 4 + .../ReusingControlPanelItems_SL.csproj | 131 +++++++++ .../ReusingControlPanelItems_WPF.csproj | 146 ++++++++++ .../Custommizations/MaskCustomizations.csproj | 4 +- .../MaskCustomizationsSL.csproj | 8 +- .../DynamicFormatString_SL.csproj | 4 + MaskedInput/MaskedInput_SL.sln | 6 + MaskedInput/MaskedInput_WPF.sln | 6 + MaskedInput/MinusKeyCustomizations/App.config | 6 + MaskedInput/MinusKeyCustomizations/App.xaml | 8 + .../MinusKeyCustomizations/App.xaml.cs | 8 + .../MinusKeyCustomizations/App_SL.xaml | 8 + .../MinusKeyCustomizations/App_SL.xaml.cs | 58 ++++ .../MinusKeyCustomizations/Example.xaml | 92 +++++++ .../MinusKeyCustomizations/Example.xaml.cs | 12 + .../MinusKeyCustomizations/MainPage.xaml | 14 + .../MinusKeyCustomizations/MainPage.xaml.cs | 12 + .../MinusKeyCustomizations/MainWindow.xaml | 9 + .../MinusKeyCustomizations/MainWindow.xaml.cs | 12 + .../MinusKeyCustomizations_SL.csproj | 132 +++++++++ .../MinusKeyCustomizations_WPF.csproj | 128 +++++++++ .../NumericInputMinusClearsSelection.cs | 26 ++ .../NumericInputMinusDeletable.cs | 75 +++++ .../Properties/AppManifest.xml | 6 + .../Properties/AssemblyInfo.cs | 44 +++ .../Properties/Resources.Designer.cs | 71 +++++ .../Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 30 ++ .../Properties/Settings.settings | 7 + MaskedInput/MinusKeyCustomizations/Readme.txt | 7 + .../CreateDocumentWithImages/MainViewModel.cs | 7 +- .../Resources/ResourceHelper.cs | 36 --- .../CollectionEditorCustomDataType/App.xaml | 8 + .../App.xaml.cs | 0 .../App_SL.xaml | 8 + .../App_SL.xaml.cs | 68 +++++ .../CollectionEditorCustomDataType_SL.csproj | 37 +-- .../CollectionEditorCustomDataType_WPF.csproj | 161 +++++++++++ .../CustomString.cs | 68 +++++ .../MainPage.xaml | 29 ++ .../MainPage.xaml.cs | 7 +- .../MainWindow.xaml | 27 ++ .../MainWindow.xaml.cs | 5 +- .../MyViewModel.cs | 56 ++++ .../Properties/AppManifest.xml | 6 + .../Properties/AssemblyInfo.cs | 35 +++ .../CollectionEditorCustomDataType/Readme.txt | 8 + .../CustomFunctions/CustomFunctions_SL.csproj | 1 + .../CustomFunctions_WPF.csproj | 1 + .../CustomFunctions/Functions/Indirect.cs | 83 ++++++ Spreadsheet/CustomFunctions/MainPage.xaml.cs | 1 + Spreadsheet/CustomFunctions/Readme.txt | 1 + .../Resources/CustomFunctions.xlsx | Bin 5081 -> 9265 bytes Window/AlertWithDifferentIcon/Readme.txt | 8 +- 101 files changed, 2566 insertions(+), 1144 deletions(-) delete mode 100644 ChartView/SL/IndividualAxisZooming/Resources.xaml delete mode 100644 ChartView/SL/SeriesProvider/MyDataObject.cs delete mode 100644 ChartView/SL/SeriesProvider/MyViewModel.cs delete mode 100644 ChartView/SL/SeriesProvider/SeriesProviderDataItem.cs delete mode 100644 ChartView/WPF/IndividualAxisZooming/Resources.xaml delete mode 100644 ChartView/WPF/SeriesProvider/MyDataObject.cs delete mode 100644 ChartView/WPF/SeriesProvider/MyViewModel.cs delete mode 100644 ChartView/WPF/SeriesProvider/SeriesProviderDataItem.cs delete mode 100644 GridView/CreateCustomDateTimePickerColumn/App.xaml delete mode 100644 GridView/CreateCustomDateTimePickerColumn/App_SL.xaml delete mode 100644 GridView/CreateCustomDateTimePickerColumn/Club.cs delete mode 100644 GridView/CreateCustomDateTimePickerColumn/CreateCustomDateTimePickerColumn_SL.sln delete mode 100644 GridView/CreateCustomDateTimePickerColumn/CreateCustomDateTimePickerColumn_WPF.sln delete mode 100644 GridView/CreateCustomDateTimePickerColumn/GenericDateTimePicker.xaml delete mode 100644 GridView/CreateCustomDateTimePickerColumn/GenericDateTimePicker.xaml.cs delete mode 100644 GridView/CreateCustomDateTimePickerColumn/GenericDateTimePickerColumn.cs delete mode 100644 GridView/CreateCustomDateTimePickerColumn/GenericDateTimePickerSL.xaml delete mode 100644 GridView/CreateCustomDateTimePickerColumn/GenericDateTimePickerSL.xaml.cs delete mode 100644 GridView/CreateCustomDateTimePickerColumn/MainPage.xaml delete mode 100644 GridView/CreateCustomDateTimePickerColumn/MainWindow.xaml delete mode 100644 GridView/CreateCustomDateTimePickerColumn/Readme.txt create mode 100644 GridView/DeferredSearching/App.xaml create mode 100644 GridView/DeferredSearching/App.xaml.cs rename GridView/{CreateCustomDateTimePickerColumn/CreateCustomDateTimePickerColumn_WPF.csproj => DeferredSearching/DeferredSearching_WPF.csproj} (84%) create mode 100644 GridView/DeferredSearching/MainWindow.xaml create mode 100644 GridView/DeferredSearching/MainWindow.xaml.cs create mode 100644 GridView/DeferredSearching/MyViewModel.cs create mode 100644 GridView/DeferredSearching/Player.cs rename GridView/{CreateCustomDateTimePickerColumn => DeferredSearching}/Properties/AssemblyInfo.cs (91%) create mode 100644 GridView/DeferredSearching/Readme.txt create mode 100644 GridView/ReusingControlPanelItems/App.config create mode 100644 GridView/ReusingControlPanelItems/App.xaml create mode 100644 GridView/ReusingControlPanelItems/App.xaml.cs create mode 100644 GridView/ReusingControlPanelItems/App_SL.xaml rename GridView/{CreateCustomDateTimePickerColumn => ReusingControlPanelItems}/App_SL.xaml.cs (98%) create mode 100644 GridView/ReusingControlPanelItems/Club.cs create mode 100644 GridView/ReusingControlPanelItems/IdentityConverter.cs create mode 100644 GridView/ReusingControlPanelItems/MainPage.xaml create mode 100644 GridView/ReusingControlPanelItems/MainPage.xaml.cs create mode 100644 GridView/ReusingControlPanelItems/MainWindow.xaml create mode 100644 GridView/ReusingControlPanelItems/MainWindow.xaml.cs create mode 100644 GridView/ReusingControlPanelItems/MyViewModel.cs rename GridView/{CreateCustomDateTimePickerColumn => ReusingControlPanelItems}/Properties/AppManifest.xml (100%) create mode 100644 GridView/ReusingControlPanelItems/Properties/AssemblyInfo.cs create mode 100644 GridView/ReusingControlPanelItems/Readme.txt create mode 100644 GridView/ReusingControlPanelItems/ReusingControlPanelItems_SL.csproj create mode 100644 GridView/ReusingControlPanelItems/ReusingControlPanelItems_WPF.csproj create mode 100644 MaskedInput/MinusKeyCustomizations/App.config create mode 100644 MaskedInput/MinusKeyCustomizations/App.xaml create mode 100644 MaskedInput/MinusKeyCustomizations/App.xaml.cs create mode 100644 MaskedInput/MinusKeyCustomizations/App_SL.xaml create mode 100644 MaskedInput/MinusKeyCustomizations/App_SL.xaml.cs create mode 100644 MaskedInput/MinusKeyCustomizations/Example.xaml create mode 100644 MaskedInput/MinusKeyCustomizations/Example.xaml.cs create mode 100644 MaskedInput/MinusKeyCustomizations/MainPage.xaml create mode 100644 MaskedInput/MinusKeyCustomizations/MainPage.xaml.cs create mode 100644 MaskedInput/MinusKeyCustomizations/MainWindow.xaml create mode 100644 MaskedInput/MinusKeyCustomizations/MainWindow.xaml.cs create mode 100644 MaskedInput/MinusKeyCustomizations/MinusKeyCustomizations_SL.csproj create mode 100644 MaskedInput/MinusKeyCustomizations/MinusKeyCustomizations_WPF.csproj create mode 100644 MaskedInput/MinusKeyCustomizations/NumericInputMinusClearsSelection.cs create mode 100644 MaskedInput/MinusKeyCustomizations/NumericInputMinusDeletable.cs create mode 100644 MaskedInput/MinusKeyCustomizations/Properties/AppManifest.xml create mode 100644 MaskedInput/MinusKeyCustomizations/Properties/AssemblyInfo.cs create mode 100644 MaskedInput/MinusKeyCustomizations/Properties/Resources.Designer.cs create mode 100644 MaskedInput/MinusKeyCustomizations/Properties/Resources.resx create mode 100644 MaskedInput/MinusKeyCustomizations/Properties/Settings.Designer.cs create mode 100644 MaskedInput/MinusKeyCustomizations/Properties/Settings.settings create mode 100644 MaskedInput/MinusKeyCustomizations/Readme.txt delete mode 100644 PdfProcessing/CreateDocumentWithImages/Resources/ResourceHelper.cs create mode 100644 PropertyGrid/CollectionEditorCustomDataType/App.xaml rename {GridView/CreateCustomDateTimePickerColumn => PropertyGrid/CollectionEditorCustomDataType}/App.xaml.cs (100%) create mode 100644 PropertyGrid/CollectionEditorCustomDataType/App_SL.xaml create mode 100644 PropertyGrid/CollectionEditorCustomDataType/App_SL.xaml.cs rename GridView/CreateCustomDateTimePickerColumn/CreateCustomDateTimePickerColumn_SL.csproj => PropertyGrid/CollectionEditorCustomDataType/CollectionEditorCustomDataType_SL.csproj (78%) create mode 100644 PropertyGrid/CollectionEditorCustomDataType/CollectionEditorCustomDataType_WPF.csproj create mode 100644 PropertyGrid/CollectionEditorCustomDataType/CustomString.cs create mode 100644 PropertyGrid/CollectionEditorCustomDataType/MainPage.xaml rename {GridView/CreateCustomDateTimePickerColumn => PropertyGrid/CollectionEditorCustomDataType}/MainPage.xaml.cs (61%) create mode 100644 PropertyGrid/CollectionEditorCustomDataType/MainWindow.xaml rename {GridView/CreateCustomDateTimePickerColumn => PropertyGrid/CollectionEditorCustomDataType}/MainWindow.xaml.cs (77%) create mode 100644 PropertyGrid/CollectionEditorCustomDataType/MyViewModel.cs create mode 100644 PropertyGrid/CollectionEditorCustomDataType/Properties/AppManifest.xml create mode 100644 PropertyGrid/CollectionEditorCustomDataType/Properties/AssemblyInfo.cs create mode 100644 PropertyGrid/CollectionEditorCustomDataType/Readme.txt create mode 100644 Spreadsheet/CustomFunctions/Functions/Indirect.cs diff --git a/ChartView/SL/IndividualAxisZooming/Resources.xaml b/ChartView/SL/IndividualAxisZooming/Resources.xaml deleted file mode 100644 index 8407af450..000000000 --- a/ChartView/SL/IndividualAxisZooming/Resources.xaml +++ /dev/null @@ -1,260 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ChartView/SL/SeriesProvider/MyDataObject.cs b/ChartView/SL/SeriesProvider/MyDataObject.cs deleted file mode 100644 index 9fc2b8c8c..000000000 --- a/ChartView/SL/SeriesProvider/MyDataObject.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; - -namespace SeriesProvider -{ - public class MyDataObject - { - public string Category { get; set; } - public double Value { get; set; } - } -} diff --git a/ChartView/SL/SeriesProvider/MyViewModel.cs b/ChartView/SL/SeriesProvider/MyViewModel.cs deleted file mode 100644 index 6cb663ac0..000000000 --- a/ChartView/SL/SeriesProvider/MyViewModel.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System; -using System.Collections.ObjectModel; -using System.Net; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Documents; -using System.Windows.Ink; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Animation; -using System.Windows.Shapes; - -namespace SeriesProvider -{ - public class MyViewModel - { - public ObservableCollection Data - { - get; - set; - } - - public MyViewModel() - { - this.Data = new ObservableCollection() { - new SeriesProviderDataItem() { Items = new ObservableCollection() { - new MyDataObject() { Category = "A", Value = 5}, - new MyDataObject() { Category = "B", Value = 7}, - new MyDataObject() { Category = "C", Value = 6}, - new MyDataObject() { Category = "D", Value = 8} - } - }, - new SeriesProviderDataItem() { Items = new ObservableCollection() { - new MyDataObject() { Category = "A", Value = 15}, - new MyDataObject() { Category = "B", Value = 18}, - new MyDataObject() { Category = "C", Value = 19}, - new MyDataObject() { Category = "D", Value = 23} - } - }, - new SeriesProviderDataItem() { Items = new ObservableCollection() { - new MyDataObject() { Category = "A", Value = 21}, - new MyDataObject() { Category = "B", Value = 25}, - new MyDataObject() { Category = "C", Value = 26}, - new MyDataObject() { Category = "D", Value = 25} - } - } - }; - } - } -} diff --git a/ChartView/SL/SeriesProvider/SeriesProviderDataItem.cs b/ChartView/SL/SeriesProvider/SeriesProviderDataItem.cs deleted file mode 100644 index 3fe829fb7..000000000 --- a/ChartView/SL/SeriesProvider/SeriesProviderDataItem.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; -using System.Collections.ObjectModel; - -namespace SeriesProvider -{ - public class SeriesProviderDataItem - { - public ObservableCollection Items { get; set; } - } -} diff --git a/ChartView/WPF/IndividualAxisZooming/Resources.xaml b/ChartView/WPF/IndividualAxisZooming/Resources.xaml deleted file mode 100644 index 813f40c34..000000000 --- a/ChartView/WPF/IndividualAxisZooming/Resources.xaml +++ /dev/null @@ -1,252 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ChartView/WPF/SeriesProvider/MyDataObject.cs b/ChartView/WPF/SeriesProvider/MyDataObject.cs deleted file mode 100644 index 9fc2b8c8c..000000000 --- a/ChartView/WPF/SeriesProvider/MyDataObject.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; - -namespace SeriesProvider -{ - public class MyDataObject - { - public string Category { get; set; } - public double Value { get; set; } - } -} diff --git a/ChartView/WPF/SeriesProvider/MyViewModel.cs b/ChartView/WPF/SeriesProvider/MyViewModel.cs deleted file mode 100644 index 6cb663ac0..000000000 --- a/ChartView/WPF/SeriesProvider/MyViewModel.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System; -using System.Collections.ObjectModel; -using System.Net; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Documents; -using System.Windows.Ink; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Animation; -using System.Windows.Shapes; - -namespace SeriesProvider -{ - public class MyViewModel - { - public ObservableCollection Data - { - get; - set; - } - - public MyViewModel() - { - this.Data = new ObservableCollection() { - new SeriesProviderDataItem() { Items = new ObservableCollection() { - new MyDataObject() { Category = "A", Value = 5}, - new MyDataObject() { Category = "B", Value = 7}, - new MyDataObject() { Category = "C", Value = 6}, - new MyDataObject() { Category = "D", Value = 8} - } - }, - new SeriesProviderDataItem() { Items = new ObservableCollection() { - new MyDataObject() { Category = "A", Value = 15}, - new MyDataObject() { Category = "B", Value = 18}, - new MyDataObject() { Category = "C", Value = 19}, - new MyDataObject() { Category = "D", Value = 23} - } - }, - new SeriesProviderDataItem() { Items = new ObservableCollection() { - new MyDataObject() { Category = "A", Value = 21}, - new MyDataObject() { Category = "B", Value = 25}, - new MyDataObject() { Category = "C", Value = 26}, - new MyDataObject() { Category = "D", Value = 25} - } - } - }; - } - } -} diff --git a/ChartView/WPF/SeriesProvider/SeriesProviderDataItem.cs b/ChartView/WPF/SeriesProvider/SeriesProviderDataItem.cs deleted file mode 100644 index 3fe829fb7..000000000 --- a/ChartView/WPF/SeriesProvider/SeriesProviderDataItem.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; -using System.Collections.ObjectModel; - -namespace SeriesProvider -{ - public class SeriesProviderDataItem - { - public ObservableCollection Items { get; set; } - } -} diff --git a/DateTimePicker/TodayButton/Readme.txt b/DateTimePicker/TodayButton/Readme.txt index 72a1f4ae2..c0d775a2d 100644 --- a/DateTimePicker/TodayButton/Readme.txt +++ b/DateTimePicker/TodayButton/Readme.txt @@ -1,2 +1,8 @@ This example demonstrates how to customize the Style of the DateTimePicker in order to add a today button to the RadDateTimePicker control for -Silverlight and WPF. \ No newline at end of file +Silverlight and WPF. + +IMPORTANT: + +With the release of Telerik UI for WPF Q1 2016 there is a built-in functionality for adding a Today button inside RadDateTimePicker: +- For WPF here: http://docs.telerik.com/devtools/wpf/controls/raddatetimepicker/features/todaybutton +- For Silverlight here: http://docs.telerik.com/devtools/silverlight/controls/raddatetimepicker/features/todaybutton \ No newline at end of file diff --git a/GridView/CreateCustomDateTimePickerColumn/App.xaml b/GridView/CreateCustomDateTimePickerColumn/App.xaml deleted file mode 100644 index 5ae0be4d6..000000000 --- a/GridView/CreateCustomDateTimePickerColumn/App.xaml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - diff --git a/GridView/CreateCustomDateTimePickerColumn/App_SL.xaml b/GridView/CreateCustomDateTimePickerColumn/App_SL.xaml deleted file mode 100644 index a0cd3f7f6..000000000 --- a/GridView/CreateCustomDateTimePickerColumn/App_SL.xaml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - diff --git a/GridView/CreateCustomDateTimePickerColumn/Club.cs b/GridView/CreateCustomDateTimePickerColumn/Club.cs deleted file mode 100644 index 5c8e23736..000000000 --- a/GridView/CreateCustomDateTimePickerColumn/Club.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.ComponentModel; -using System.Collections.ObjectModel; - -namespace CreateCustomDateTimePickerColumn -{ - public class Club: INotifyPropertyChanged - { - private string name; - private DateTime? established; - private int stadiumCapacity; - - public Club(string name, DateTime? established, int stadiumCapacity) - { - this.name = name; - this.established = established; - this.stadiumCapacity = stadiumCapacity; - } - - public String Name - { - get { return this.name; } - set - { - if (this.name != value) - { - this.name = value; - this.OnPropertyChanged("Name"); - } - } - } - - public DateTime? Established - { - get - { - return this.established; - } - set - { - if (this.established != value) - { - this.established = value; - this.OnPropertyChanged("Established"); - } - } - } - - public int StadiumCapacity - { - get { return this.stadiumCapacity; } - set - { - if (this.stadiumCapacity != value) - { - this.stadiumCapacity = value; - this.OnPropertyChanged("StadiumCapacity"); - } - } - } - - public static IEnumerable GetClubs() - { - ObservableCollection clubs = new ObservableCollection(); - clubs.Add(new Club("Liverpool", new DateTime(1892, 1, 1, 13, 35, 15), 45362)); - clubs.Add(new Club("Manchester Utd.", new DateTime(1878, 1, 1, 18, 45, 25), 76212)); - clubs.Add(new Club("Chelsea", new DateTime(1905, 1, 1, 23, 45, 35), 42055)); - clubs.Add(new Club("Arsenal", new DateTime(1886, 1, 1, 4, 55, 45), 60355)); - return clubs; - } - - public event PropertyChangedEventHandler PropertyChanged; - - protected virtual void OnPropertyChanged(PropertyChangedEventArgs args) - { - PropertyChangedEventHandler handler = this.PropertyChanged; - if (handler != null) - { - handler(this, args); - } - } - - private void OnPropertyChanged(string propertyName) - { - this.OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); - } - } -} \ No newline at end of file diff --git a/GridView/CreateCustomDateTimePickerColumn/CreateCustomDateTimePickerColumn_SL.sln b/GridView/CreateCustomDateTimePickerColumn/CreateCustomDateTimePickerColumn_SL.sln deleted file mode 100644 index 9699e1c2c..000000000 --- a/GridView/CreateCustomDateTimePickerColumn/CreateCustomDateTimePickerColumn_SL.sln +++ /dev/null @@ -1,21 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2012 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CreateCustomDateTimePickerColumn_SL", "CreateCustomDateTimePickerColumn_SL.csproj", "{208BC40B-B3EC-4143-9F27-274BAF638812}" -EndProject -Global - - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {208BC40B-B3EC-4143-9F27-274BAF638812}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {208BC40B-B3EC-4143-9F27-274BAF638812}.Debug|Any CPU.Build.0 = Debug|Any CPU - {208BC40B-B3EC-4143-9F27-274BAF638812}.Release|Any CPU.ActiveCfg = Release|Any CPU - {208BC40B-B3EC-4143-9F27-274BAF638812}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/GridView/CreateCustomDateTimePickerColumn/CreateCustomDateTimePickerColumn_WPF.sln b/GridView/CreateCustomDateTimePickerColumn/CreateCustomDateTimePickerColumn_WPF.sln deleted file mode 100644 index c11ca64f5..000000000 --- a/GridView/CreateCustomDateTimePickerColumn/CreateCustomDateTimePickerColumn_WPF.sln +++ /dev/null @@ -1,21 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2012 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CreateCustomDateTimePickerColumn_WPF", "CreateCustomDateTimePickerColumn_WPF.csproj", "{FD36B95B-5EAE-4988-837E-975C0637B114}" -EndProject -Global - - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FD36B95B-5EAE-4988-837E-975C0637B114}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FD36B95B-5EAE-4988-837E-975C0637B114}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FD36B95B-5EAE-4988-837E-975C0637B114}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FD36B95B-5EAE-4988-837E-975C0637B114}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/GridView/CreateCustomDateTimePickerColumn/GenericDateTimePicker.xaml b/GridView/CreateCustomDateTimePickerColumn/GenericDateTimePicker.xaml deleted file mode 100644 index 45b3d1487..000000000 --- a/GridView/CreateCustomDateTimePickerColumn/GenericDateTimePicker.xaml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - diff --git a/GridView/CreateCustomDateTimePickerColumn/GenericDateTimePicker.xaml.cs b/GridView/CreateCustomDateTimePickerColumn/GenericDateTimePicker.xaml.cs deleted file mode 100644 index 752785cfa..000000000 --- a/GridView/CreateCustomDateTimePickerColumn/GenericDateTimePicker.xaml.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Navigation; -using System.Windows.Shapes; - -namespace CreateCustomDateTimePickerColumn -{ - /// - /// Interaction logic for GenericDateTimePicker.xaml - /// - public partial class GenericDateTimePicker : UserControl - { - public static readonly DependencyProperty SelectedDateTimeProperty = - DependencyProperty.Register("SelectedDateTime", typeof(DateTime?), typeof(GenericDateTimePicker), new PropertyMetadata(null)); - - public GenericDateTimePicker() - { - InitializeComponent(); - } - - public DateTime? SelectedDateTime - { - get - { - return (DateTime?)this.GetValue(SelectedDateTimeProperty); - } - set - { - this.SetValue(SelectedDateTimeProperty, value); - } - } - } -} diff --git a/GridView/CreateCustomDateTimePickerColumn/GenericDateTimePickerColumn.cs b/GridView/CreateCustomDateTimePickerColumn/GenericDateTimePickerColumn.cs deleted file mode 100644 index 09b630a37..000000000 --- a/GridView/CreateCustomDateTimePickerColumn/GenericDateTimePickerColumn.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Windows; -using System.Windows.Data; -using Telerik.Windows.Controls; -using Telerik.Windows.Controls.GridView; - -namespace CreateCustomDateTimePickerColumn -{ - public class GenericDateTimePickerColumn: GridViewBoundColumnBase - { - public override FrameworkElement CreateCellEditElement(GridViewCell cell, object dataItem) - { - this.BindingTarget = GenericDateTimePicker.SelectedDateTimeProperty; - var picker = new GenericDateTimePicker(); - picker.SetBinding(this.BindingTarget, this.CreateValueBinding()); - return picker; - } - - private Binding CreateValueBinding() - { - var valueBinding = new Binding(); - - valueBinding.Mode = BindingMode.TwoWay; - - valueBinding.NotifyOnValidationError = true; - valueBinding.ValidatesOnExceptions = true; - valueBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; - valueBinding.Path = new PropertyPath(this.DataMemberBinding.Path.Path); - return valueBinding; - } - } -} diff --git a/GridView/CreateCustomDateTimePickerColumn/GenericDateTimePickerSL.xaml b/GridView/CreateCustomDateTimePickerColumn/GenericDateTimePickerSL.xaml deleted file mode 100644 index 535e7af4c..000000000 --- a/GridView/CreateCustomDateTimePickerColumn/GenericDateTimePickerSL.xaml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - diff --git a/GridView/CreateCustomDateTimePickerColumn/GenericDateTimePickerSL.xaml.cs b/GridView/CreateCustomDateTimePickerColumn/GenericDateTimePickerSL.xaml.cs deleted file mode 100644 index a47f05a02..000000000 --- a/GridView/CreateCustomDateTimePickerColumn/GenericDateTimePickerSL.xaml.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Animation; -using System.Windows.Shapes; - -namespace CreateCustomDateTimePickerColumn -{ - public partial class GenericDateTimePickerSL : UserControl - { - public static readonly DependencyProperty SelectedDateTimeProperty = - DependencyProperty.Register("SelectedDateTime", typeof(DateTime?), typeof(GenericDateTimePickerSL), new PropertyMetadata(null)); - - public GenericDateTimePickerSL() - { - InitializeComponent(); - } - - public DateTime? SelectedDateTime - { - get - { - return (DateTime?)this.GetValue(SelectedDateTimeProperty); - } - set - { - this.SetValue(SelectedDateTimeProperty, value); - } - } - - private void HandlePickersSelectionChanged() - { - if (this.Calendar.SelectedDate != null && this.TimePicker.SelectedTime != null) - { - this.SelectedDateTime = this.Calendar.SelectedDate + this.TimePicker.SelectedTime; - } - } - - private void TimePicker_SelectionChanged(object sender, Telerik.Windows.Controls.SelectionChangedEventArgs e) - { - this.HandlePickersSelectionChanged(); - } - - private void Calendar_SelectionChanged(object sender, Telerik.Windows.Controls.SelectionChangedEventArgs e) - { - this.HandlePickersSelectionChanged(); - } - } -} diff --git a/GridView/CreateCustomDateTimePickerColumn/MainPage.xaml b/GridView/CreateCustomDateTimePickerColumn/MainPage.xaml deleted file mode 100644 index 83d26f022..000000000 --- a/GridView/CreateCustomDateTimePickerColumn/MainPage.xaml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - diff --git a/GridView/CreateCustomDateTimePickerColumn/MainWindow.xaml b/GridView/CreateCustomDateTimePickerColumn/MainWindow.xaml deleted file mode 100644 index b19384053..000000000 --- a/GridView/CreateCustomDateTimePickerColumn/MainWindow.xaml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - diff --git a/GridView/CreateCustomDateTimePickerColumn/Readme.txt b/GridView/CreateCustomDateTimePickerColumn/Readme.txt deleted file mode 100644 index 5b875341a..000000000 --- a/GridView/CreateCustomDateTimePickerColumn/Readme.txt +++ /dev/null @@ -1,12 +0,0 @@ -#Create Custom DateTimePicker Column# -This example demonstrates how you can create a custom DateTimePickerColumn column bound to a specific property of the business object, -as well a reusable custom DateTimePickerColumn bound to its SelectedDate property. - -Additional information about creating a custom DateTimePickerColumn can be found in the following articles: -WPF: http://docs.telerik.com/devtools/wpf/controls/radgridview/columns/how-to/create-date-time-picker-column.html -SL: http://docs.telerik.com/devtools/silverlight/controls/radgridview/columns/how-to/create-date-time-picker-column.html - -WPF: http://docs.telerik.com/devtools/wpf/controls/radgridview/columns/how-to/create-generic-date-time-picker-column -SL: http://docs.telerik.com/devtools/silverlight/controls/radgridview/columns/how-to/create-generic-date-time-picker-column - - \ No newline at end of file diff --git a/GridView/DeferredSearching/App.xaml b/GridView/DeferredSearching/App.xaml new file mode 100644 index 000000000..0066198c0 --- /dev/null +++ b/GridView/DeferredSearching/App.xaml @@ -0,0 +1,8 @@ + + + + + diff --git a/GridView/DeferredSearching/App.xaml.cs b/GridView/DeferredSearching/App.xaml.cs new file mode 100644 index 000000000..c7f7f6c67 --- /dev/null +++ b/GridView/DeferredSearching/App.xaml.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Windows; + +namespace DeferredSearching +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + } +} diff --git a/GridView/CreateCustomDateTimePickerColumn/CreateCustomDateTimePickerColumn_WPF.csproj b/GridView/DeferredSearching/DeferredSearching_WPF.csproj similarity index 84% rename from GridView/CreateCustomDateTimePickerColumn/CreateCustomDateTimePickerColumn_WPF.csproj rename to GridView/DeferredSearching/DeferredSearching_WPF.csproj index c182dc58d..058a94ada 100644 --- a/GridView/CreateCustomDateTimePickerColumn/CreateCustomDateTimePickerColumn_WPF.csproj +++ b/GridView/DeferredSearching/DeferredSearching_WPF.csproj @@ -5,11 +5,11 @@ AnyCPU 8.0.30703 2.0 - {D6E6F756-D1B2-448C-BCDD-80BE0F46C5CA} + {51CC34DB-1000-43EC-8385-14F2104C1C0D} WinExe Properties - CreateCustomDateTimePickerColumn - WpfApplication1 + DeferredSearching + DeferredSearching v4.0 Client 512 @@ -84,19 +84,16 @@ 4.0 - $(TELERIKWPFDIR)\Binaries.NoXaml\WPF40\Telerik.Windows.Controls.dll + $(TELERIKWPFDIR)\Binaries\WPF40\Telerik.Windows.Controls.dll - $(TELERIKWPFDIR)\Binaries.NoXaml\WPF40\Telerik.Windows.Controls.GridView.dll + $(TELERIKWPFDIR)\Binaries\WPF40\Telerik.Windows.Controls.GridView.dll - $(TELERIKWPFDIR)\Binaries.NoXaml\WPF40\Telerik.Windows.Controls.Input.dll + $(TELERIKWPFDIR)\Binaries\WPF40\Telerik.Windows.Controls.Input.dll - $(TELERIKWPFDIR)\Binaries.NoXaml\WPF40\Telerik.Windows.Data.dll - - - $(TELERIKWPFDIR)\Binaries.NoXaml\WPF40\Telerik.Windows.Themes.Office_Black.dll + $(TELERIKWPFDIR)\Binaries\WPF40\Telerik.Windows.Data.dll @@ -107,10 +104,6 @@ MSBuild:Compile Designer - - Designer - MSBuild:Compile - MSBuild:Compile Designer @@ -119,17 +112,14 @@ App.xaml Code - - - GenericDateTimePicker.xaml - - MainWindow.xaml Code + + Code diff --git a/GridView/DeferredSearching/MainWindow.xaml b/GridView/DeferredSearching/MainWindow.xaml new file mode 100644 index 000000000..a0f945622 --- /dev/null +++ b/GridView/DeferredSearching/MainWindow.xaml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + diff --git a/GridView/DeferredSearching/MainWindow.xaml.cs b/GridView/DeferredSearching/MainWindow.xaml.cs new file mode 100644 index 000000000..a899dda12 --- /dev/null +++ b/GridView/DeferredSearching/MainWindow.xaml.cs @@ -0,0 +1,27 @@ +using System; +using System.Linq; +using System.Windows; +using Telerik.Windows.Data; +using System.Collections; +using System.ComponentModel; +using System.Collections.Specialized; +using Telerik.Windows.Controls.GridView; +using Telerik.Windows.Controls; +using System.Windows.Controls.Primitives; +using Telerik.Windows.Controls.Filtering.Editors; +using System.Windows.Controls; + +namespace DeferredSearching +{ + /// + /// Interaction logic for MainWindow.xaml + /// + public partial class MainWindow : Window + { + public MainWindow() + { + InitializeComponent(); + isSearchingDeferredCheckBox.IsChecked = true; + } + } +} diff --git a/GridView/DeferredSearching/MyViewModel.cs b/GridView/DeferredSearching/MyViewModel.cs new file mode 100644 index 000000000..ab0053747 --- /dev/null +++ b/GridView/DeferredSearching/MyViewModel.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; +using System.Collections.ObjectModel; + +namespace DeferredSearching +{ + public class MyViewModel + { + + private ObservableCollection players; + + public ObservableCollection Players + { + get + { + if (this.players == null) + { + this.players = Player.GetPlayers(); + } + + return this.players; + } + } + } +} diff --git a/GridView/DeferredSearching/Player.cs b/GridView/DeferredSearching/Player.cs new file mode 100644 index 000000000..ec40855e8 --- /dev/null +++ b/GridView/DeferredSearching/Player.cs @@ -0,0 +1,110 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Linq; +using System.Text; + +namespace DeferredSearching +{ + public class Player : INotifyPropertyChanged + { + public event PropertyChangedEventHandler PropertyChanged; + + private string name; + private int number; + private string country; + + public string Name + { + get { return this.name; } + set + { + if (value != this.name) + { + this.name = value; + this.OnPropertyChanged("Name"); + } + } + } + + public int Number + { + get { return this.number; } + set + { + if (value != this.number) + { + this.number = value; + this.OnPropertyChanged("Number"); + } + } + } + + public string Country + { + get { return this.country; } + set + { + if (value != this.country) + { + this.country = value; + this.OnPropertyChanged("Country"); + } + } + } + + public Player() + { + + } + + public Player(string name, int number, string country) + { + this.name = name; + this.number = number; + this.country = country; + } + + protected virtual void OnPropertyChanged(PropertyChangedEventArgs args) + { + PropertyChangedEventHandler handler = this.PropertyChanged; + if (handler != null) + { + handler(this, args); + } + } + + private void OnPropertyChanged(string propertyName) + { + this.OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); + } + + public override string ToString() + { + return this.Name; + } + + public static ObservableCollection GetPlayers() + { + var players = new ObservableCollection(); + players.Add(new Player("Pepe Reina", 25, "Spain")); + players.Add(new Player("Jamie Carragher", 23, "England")); + players.Add(new Player("Steven Gerrard", 8, "England")); + players.Add(new Player("Fernando Torres", 9, "Spain")); + players.Add(new Player("Edwin van der Sar", 1, "Netherlands")); + players.Add(new Player("Rio Ferdinand", 5, "England")); + players.Add(new Player("Ryan Giggs", 11, "Wales")); + players.Add(new Player("Wayne Rooney", 10, "England")); + players.Add(new Player("Petr Čech", 1, "Czech Republic")); + players.Add(new Player("John Terry", 26, "England")); + players.Add(new Player("Frank Lampard", 8, "England")); + players.Add(new Player("Nicolas Anelka", 39, "France")); + players.Add(new Player("Manuel Almunia", 1, "Spain")); + players.Add(new Player("Gaël Clichy", 22, "France")); + players.Add(new Player("Cesc Fàbregas", 4, "Spain")); + players.Add(new Player("Robin van Persie", 11, "Netherlands")); + return players; + } + } +} diff --git a/GridView/CreateCustomDateTimePickerColumn/Properties/AssemblyInfo.cs b/GridView/DeferredSearching/Properties/AssemblyInfo.cs similarity index 91% rename from GridView/CreateCustomDateTimePickerColumn/Properties/AssemblyInfo.cs rename to GridView/DeferredSearching/Properties/AssemblyInfo.cs index 57642e902..d33d198cb 100644 --- a/GridView/CreateCustomDateTimePickerColumn/Properties/AssemblyInfo.cs +++ b/GridView/DeferredSearching/Properties/AssemblyInfo.cs @@ -5,11 +5,11 @@ // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle("CreateCustomDateTimePickerColumn")] +[assembly: AssemblyTitle("FilterAsYouTypeWithFilterRow")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Telerik")] -[assembly: AssemblyProduct("CreateCustomDateTimePickerColumn")] +[assembly: AssemblyProduct("FilterAsYouTypeWithFilterRow")] [assembly: AssemblyCopyright("Copyright © Microsoft 2012")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/GridView/DeferredSearching/Readme.txt b/GridView/DeferredSearching/Readme.txt new file mode 100644 index 000000000..cbee3d7ff --- /dev/null +++ b/GridView/DeferredSearching/Readme.txt @@ -0,0 +1,4 @@ +#Deferred Searching# +This example demonstrates how to implement deferred searching for your RadGridView. +See also: +WPF: http://docs.telerik.com/devtools/wpf/controls/radgridview/features/search-as-you-type#deferred-searching \ No newline at end of file diff --git a/GridView/GridView_SL.sln b/GridView/GridView_SL.sln index b1fcd18fe..760979e61 100644 --- a/GridView/GridView_SL.sln +++ b/GridView/GridView_SL.sln @@ -118,6 +118,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PrintPreviewWithSpreadsheet EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExportMultipleGridViewsToOneDocument_SL", "ExportMultipleGridViewsToOneDocument\ExportMultipleGridViewsToOneDocument_SL.csproj", "{3B0EE271-B455-4B8B-91E8-92338F5777F3}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReusingControlPanelItems_SL", "ReusingControlPanelItems\ReusingControlPanelItems_SL.csproj", "{0CE38745-5E67-49D0-B377-CBDD749A1B81}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -689,6 +691,16 @@ Global {3B0EE271-B455-4B8B-91E8-92338F5777F3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {3B0EE271-B455-4B8B-91E8-92338F5777F3}.Release|Mixed Platforms.Build.0 = Release|Any CPU {3B0EE271-B455-4B8B-91E8-92338F5777F3}.Release|x86.ActiveCfg = Release|Any CPU + {0CE38745-5E67-49D0-B377-CBDD749A1B81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0CE38745-5E67-49D0-B377-CBDD749A1B81}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0CE38745-5E67-49D0-B377-CBDD749A1B81}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {0CE38745-5E67-49D0-B377-CBDD749A1B81}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {0CE38745-5E67-49D0-B377-CBDD749A1B81}.Debug|x86.ActiveCfg = Debug|Any CPU + {0CE38745-5E67-49D0-B377-CBDD749A1B81}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0CE38745-5E67-49D0-B377-CBDD749A1B81}.Release|Any CPU.Build.0 = Release|Any CPU + {0CE38745-5E67-49D0-B377-CBDD749A1B81}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {0CE38745-5E67-49D0-B377-CBDD749A1B81}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {0CE38745-5E67-49D0-B377-CBDD749A1B81}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/GridView/GridView_WPF.sln b/GridView/GridView_WPF.sln index fb2366348..d74b97fd1 100644 --- a/GridView/GridView_WPF.sln +++ b/GridView/GridView_WPF.sln @@ -124,6 +124,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PrintPreviewWithSpreadsheet EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExportMultipleGridViewsToOneDocument_WPF", "ExportMultipleGridViewsToOneDocument\ExportMultipleGridViewsToOneDocument_WPF.csproj", "{EE87A6DB-4FBE-4C69-9993-4497B59438C4}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReusingControlPanelItems_WPF", "ReusingControlPanelItems\ReusingControlPanelItems_WPF.csproj", "{05F53909-80FB-478E-ABE2-F589651BEA5F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DeferredSearching_WPF", "DeferredSearching\DeferredSearching_WPF.csproj", "{51CC34DB-1000-43EC-8385-14F2104C1C0D}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -725,6 +729,26 @@ Global {EE87A6DB-4FBE-4C69-9993-4497B59438C4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {EE87A6DB-4FBE-4C69-9993-4497B59438C4}.Release|Mixed Platforms.Build.0 = Release|Any CPU {EE87A6DB-4FBE-4C69-9993-4497B59438C4}.Release|x86.ActiveCfg = Release|Any CPU + {05F53909-80FB-478E-ABE2-F589651BEA5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {05F53909-80FB-478E-ABE2-F589651BEA5F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {05F53909-80FB-478E-ABE2-F589651BEA5F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {05F53909-80FB-478E-ABE2-F589651BEA5F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {05F53909-80FB-478E-ABE2-F589651BEA5F}.Debug|x86.ActiveCfg = Debug|Any CPU + {05F53909-80FB-478E-ABE2-F589651BEA5F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {05F53909-80FB-478E-ABE2-F589651BEA5F}.Release|Any CPU.Build.0 = Release|Any CPU + {05F53909-80FB-478E-ABE2-F589651BEA5F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {05F53909-80FB-478E-ABE2-F589651BEA5F}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {05F53909-80FB-478E-ABE2-F589651BEA5F}.Release|x86.ActiveCfg = Release|Any CPU + {51CC34DB-1000-43EC-8385-14F2104C1C0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {51CC34DB-1000-43EC-8385-14F2104C1C0D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {51CC34DB-1000-43EC-8385-14F2104C1C0D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {51CC34DB-1000-43EC-8385-14F2104C1C0D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {51CC34DB-1000-43EC-8385-14F2104C1C0D}.Debug|x86.ActiveCfg = Debug|Any CPU + {51CC34DB-1000-43EC-8385-14F2104C1C0D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {51CC34DB-1000-43EC-8385-14F2104C1C0D}.Release|Any CPU.Build.0 = Release|Any CPU + {51CC34DB-1000-43EC-8385-14F2104C1C0D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {51CC34DB-1000-43EC-8385-14F2104C1C0D}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {51CC34DB-1000-43EC-8385-14F2104C1C0D}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/GridView/ReusingControlPanelItems/App.config b/GridView/ReusingControlPanelItems/App.config new file mode 100644 index 000000000..8e1564635 --- /dev/null +++ b/GridView/ReusingControlPanelItems/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/GridView/ReusingControlPanelItems/App.xaml b/GridView/ReusingControlPanelItems/App.xaml new file mode 100644 index 000000000..bc39e7bc1 --- /dev/null +++ b/GridView/ReusingControlPanelItems/App.xaml @@ -0,0 +1,8 @@ + + + + + diff --git a/GridView/ReusingControlPanelItems/App.xaml.cs b/GridView/ReusingControlPanelItems/App.xaml.cs new file mode 100644 index 000000000..c7613252b --- /dev/null +++ b/GridView/ReusingControlPanelItems/App.xaml.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace ReusingControlPanelItems_WPF +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + } +} diff --git a/GridView/ReusingControlPanelItems/App_SL.xaml b/GridView/ReusingControlPanelItems/App_SL.xaml new file mode 100644 index 000000000..e74c1ec4a --- /dev/null +++ b/GridView/ReusingControlPanelItems/App_SL.xaml @@ -0,0 +1,8 @@ + + + + + diff --git a/GridView/CreateCustomDateTimePickerColumn/App_SL.xaml.cs b/GridView/ReusingControlPanelItems/App_SL.xaml.cs similarity index 98% rename from GridView/CreateCustomDateTimePickerColumn/App_SL.xaml.cs rename to GridView/ReusingControlPanelItems/App_SL.xaml.cs index ca644760f..ab1de0c60 100644 --- a/GridView/CreateCustomDateTimePickerColumn/App_SL.xaml.cs +++ b/GridView/ReusingControlPanelItems/App_SL.xaml.cs @@ -10,7 +10,7 @@ using System.Windows.Media.Animation; using System.Windows.Shapes; -namespace CreateCustomDateTimePickerColumn +namespace ReusingControlPanelItems_SL { public partial class App : Application { diff --git a/GridView/ReusingControlPanelItems/Club.cs b/GridView/ReusingControlPanelItems/Club.cs new file mode 100644 index 000000000..0f04cc37a --- /dev/null +++ b/GridView/ReusingControlPanelItems/Club.cs @@ -0,0 +1,123 @@ +using System; +using System.Net; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Shapes; +using System.ComponentModel; +using System.Collections.ObjectModel; +using System.Collections.Generic; +using System.Linq; + +namespace ReusingControlPanelItems +{ + /// + /// A football club. + /// + public class Club : INotifyPropertyChanged + { + public event PropertyChangedEventHandler PropertyChanged; + + private string name; + private DateTime established; + private int stadiumCapacity; + + public string Name + { + get { return this.name; } + set + { + if (value != this.name) + { + this.name = value; + this.OnPropertyChanged("Name"); + } + } + } + + public DateTime Established + { + get { return this.established; } + set + { + if (value != this.established) + { + this.established = value; + this.OnPropertyChanged("Established"); + } + } + } + + public int StadiumCapacity + { + get { return this.stadiumCapacity; } + set + { + if (value != this.stadiumCapacity) + { + this.stadiumCapacity = value; + this.OnPropertyChanged("StadiumCapacity"); + } + } + } + + public Club() + { + + } + + public Club(string name, DateTime established, int stadiumCapacity) + { + this.name = name; + this.established = established; + this.stadiumCapacity = stadiumCapacity; + } + + protected virtual void OnPropertyChanged(PropertyChangedEventArgs args) + { + PropertyChangedEventHandler handler = this.PropertyChanged; + if (handler != null) + { + handler(this, args); + } + } + + private void OnPropertyChanged(string propertyName) + { + this.OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); + } + + public override string ToString() + { + return this.Name; + } + + public static ObservableCollection GetClubs() + { + ObservableCollection clubs = new ObservableCollection(); + Club club; + + // Liverpool + club = new Club("Liverpool", new DateTime(1892, 1, 1), 45362); + clubs.Add(club); + + // Manchester Utd. + club = new Club("Manchester Utd.", new DateTime(1878, 1, 1), 76212); + clubs.Add(club); + + // Chelsea + club = new Club("Chelsea", new DateTime(1905, 1, 1), 42055); + clubs.Add(club); + + // Arsenal + club = new Club("Arsenal", new DateTime(1886, 1, 1), 60355); + clubs.Add(club); + + return clubs; + } + } +} diff --git a/GridView/ReusingControlPanelItems/IdentityConverter.cs b/GridView/ReusingControlPanelItems/IdentityConverter.cs new file mode 100644 index 000000000..0bb893522 --- /dev/null +++ b/GridView/ReusingControlPanelItems/IdentityConverter.cs @@ -0,0 +1,27 @@ +using System; +using System.Net; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Shapes; + +namespace ReusingControlPanelItems +{ + public class IdentityConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + return value; + } + + public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + return value; + } + } +} diff --git a/GridView/ReusingControlPanelItems/MainPage.xaml b/GridView/ReusingControlPanelItems/MainPage.xaml new file mode 100644 index 000000000..23c8d3d6f --- /dev/null +++ b/GridView/ReusingControlPanelItems/MainPage.xaml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + diff --git a/GridView/ReusingControlPanelItems/MainPage.xaml.cs b/GridView/ReusingControlPanelItems/MainPage.xaml.cs new file mode 100644 index 000000000..4b16e353e --- /dev/null +++ b/GridView/ReusingControlPanelItems/MainPage.xaml.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Shapes; + +namespace ReusingControlPanelItems_SL +{ + public partial class MainPage : UserControl + { + public MainPage() + { + InitializeComponent(); + } + } +} diff --git a/GridView/ReusingControlPanelItems/MainWindow.xaml b/GridView/ReusingControlPanelItems/MainWindow.xaml new file mode 100644 index 000000000..d33c5aea5 --- /dev/null +++ b/GridView/ReusingControlPanelItems/MainWindow.xaml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + diff --git a/GridView/ReusingControlPanelItems/MainWindow.xaml.cs b/GridView/ReusingControlPanelItems/MainWindow.xaml.cs new file mode 100644 index 000000000..83a9e47d1 --- /dev/null +++ b/GridView/ReusingControlPanelItems/MainWindow.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace ReusingControlPanelItems_WPF +{ + /// + /// Interaction logic for MainWindow.xaml + /// + public partial class MainWindow : Window + { + public MainWindow() + { + InitializeComponent(); + } + } +} diff --git a/GridView/ReusingControlPanelItems/MyViewModel.cs b/GridView/ReusingControlPanelItems/MyViewModel.cs new file mode 100644 index 000000000..6017da05c --- /dev/null +++ b/GridView/ReusingControlPanelItems/MyViewModel.cs @@ -0,0 +1,78 @@ +using System; +using System.Net; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Shapes; +using System.ComponentModel; +using System.Collections.ObjectModel; + +namespace ReusingControlPanelItems +{ + public class MyViewModel : INotifyPropertyChanged + { + public event PropertyChangedEventHandler PropertyChanged; + + private ObservableCollection firstGridClubs; + private ObservableCollection secondGridClubs; + private object selectedItem; + + public ObservableCollection FirstGridClubs + { + get + { + if (this.firstGridClubs == null) + { + this.firstGridClubs = Club.GetClubs(); + } + + return this.firstGridClubs; + } + } + + public ObservableCollection SecondGridClubs + { + get + { + if (this.secondGridClubs == null) + { + this.secondGridClubs = Club.GetClubs(); + } + + return this.secondGridClubs; + } + } + + public object SelectedItem + { + get { return this.selectedItem; } + set + { + if (value != this.selectedItem) + { + this.selectedItem = value; + this.OnPropertyChanged("SelectedItem"); + } + } + } + + protected virtual void OnPropertyChanged(PropertyChangedEventArgs args) + { + PropertyChangedEventHandler handler = this.PropertyChanged; + if (handler != null) + { + handler(this, args); + } + } + + private void OnPropertyChanged(string propertyName) + { + this.OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); + } + + } +} diff --git a/GridView/CreateCustomDateTimePickerColumn/Properties/AppManifest.xml b/GridView/ReusingControlPanelItems/Properties/AppManifest.xml similarity index 100% rename from GridView/CreateCustomDateTimePickerColumn/Properties/AppManifest.xml rename to GridView/ReusingControlPanelItems/Properties/AppManifest.xml diff --git a/GridView/ReusingControlPanelItems/Properties/AssemblyInfo.cs b/GridView/ReusingControlPanelItems/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..939c03b00 --- /dev/null +++ b/GridView/ReusingControlPanelItems/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ControlPanel")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Telerik")] +[assembly: AssemblyProduct("ControlPanel")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/GridView/ReusingControlPanelItems/Readme.txt b/GridView/ReusingControlPanelItems/Readme.txt new file mode 100644 index 000000000..9bcd47dcd --- /dev/null +++ b/GridView/ReusingControlPanelItems/Readme.txt @@ -0,0 +1,4 @@ +This example demonstrates how you can add a common Style targeting the ControlPanel that all the RadGridView controls in the application will inherit. +See also: +WPF: http://docs.telerik.com/devtools/wpf/controls/radgridview/features/overview-controlpanel.html#reusing-control-panel-items +SL: http://docs.telerik.com/devtools/silverlight/controls/radgridview/features/overview-controlpanel.html#reusing-control-panel-items diff --git a/GridView/ReusingControlPanelItems/ReusingControlPanelItems_SL.csproj b/GridView/ReusingControlPanelItems/ReusingControlPanelItems_SL.csproj new file mode 100644 index 000000000..6b50615dd --- /dev/null +++ b/GridView/ReusingControlPanelItems/ReusingControlPanelItems_SL.csproj @@ -0,0 +1,131 @@ + + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {0CE38745-5E67-49D0-B377-CBDD749A1B81} + {A1591282-1198-4647-A2B1-27E5FF5F6F3B};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} + Library + Properties + ReusingControlPanelItems_SL + ReusingControlPanelItems_SL + Silverlight + v5.0 + $(TargetFrameworkVersion) + true + + + true + true + ReusingControlPanelItems_SL.xap + Properties\AppManifest.xml + ReusingControlPanelItems_SL.App + ControlPanel_SLTestPage.html + true + true + false + Properties\OutOfBrowserSettings.xml + false + true + + + + + + + + + + v3.5 + + + true + full + false + Bin\Debug + DEBUG;TRACE;SILVERLIGHT + true + true + prompt + 4 + + + pdbonly + true + Bin\Release + TRACE;SILVERLIGHT + true + true + prompt + 4 + + + + + + + $(TargetFrameworkDirectory)System.Core.dll + + + + + + $(TELERIKSLDIR)\Binaries\Silverlight\Telerik.Windows.Controls.dll + + + $(TELERIKSLDIR)\Binaries\Silverlight\Telerik.Windows.Data.dll + + + $(TELERIKSLDIR)\Binaries\Silverlight\Telerik.Windows.Controls.Input.dll + + + $(TELERIKSLDIR)\Binaries\Silverlight\Telerik.Windows.Controls.GridView.dll + + + + + App_SL.xaml + + + + + MainPage.xaml + + + + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GridView/ReusingControlPanelItems/ReusingControlPanelItems_WPF.csproj b/GridView/ReusingControlPanelItems/ReusingControlPanelItems_WPF.csproj new file mode 100644 index 000000000..22079b7c7 --- /dev/null +++ b/GridView/ReusingControlPanelItems/ReusingControlPanelItems_WPF.csproj @@ -0,0 +1,146 @@ + + + + + Debug + AnyCPU + {05F53909-80FB-478E-ABE2-F589651BEA5F} + WinExe + Properties + ReusingControlPanelItems_WPF + ReusingControlPanelItems_WPF + v4.0 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + + + + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + 4.0 + + + $(TELERIKWPFDIR)\Binaries\WPF40\Telerik.Windows.Controls.dll + + + $(TELERIKWPFDIR)\Binaries\WPF40\Telerik.Windows.Data.dll + + + $(TELERIKWPFDIR)\Binaries\WPF40\Telerik.Windows.Controls.Input.dll + + + $(TELERIKWPFDIR)\Binaries\WPF40\Telerik.Windows.Controls.GridView.dll + + + + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + App.xaml + Code + + + + + MainWindow.xaml + Code + + + + + + Code + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 4.5 + true + + + + + \ No newline at end of file diff --git a/MaskedInput/Custommizations/MaskCustomizations.csproj b/MaskedInput/Custommizations/MaskCustomizations.csproj index 42df08cce..8ea90ac7a 100644 --- a/MaskedInput/Custommizations/MaskCustomizations.csproj +++ b/MaskedInput/Custommizations/MaskCustomizations.csproj @@ -51,11 +51,11 @@ 4.0 - + False $(TELERIKWPFDIR)\Binaries\WPF40\Telerik.Windows.Controls.dll - + False $(TELERIKWPFDIR)\Binaries\WPF40\Telerik.Windows.Controls.Input.dll diff --git a/MaskedInput/Custommizations/MaskCustomizationsSL.csproj b/MaskedInput/Custommizations/MaskCustomizationsSL.csproj index 081f1af0e..a92d79f48 100644 --- a/MaskedInput/Custommizations/MaskCustomizationsSL.csproj +++ b/MaskedInput/Custommizations/MaskCustomizationsSL.csproj @@ -31,6 +31,10 @@ true + + + + + + v3.5 + + + true + full + false + Bin\Debug + DEBUG;TRACE;SILVERLIGHT + true + true + prompt + 4 + + + pdbonly + true + Bin\Release + TRACE;SILVERLIGHT + true + true + prompt + 4 + + + + + + + $(TargetFrameworkDirectory)System.Core.dll + + + + + + $(TELERIKSLDIR)\Binaries\Silverlight\Telerik.Windows.Controls.dll + + + $(TELERIKSLDIR)\Binaries\Silverlight\Telerik.Windows.Controls.Input.dll + + + + + App_SL.xaml + + + Example.xaml + + + MainPage.xaml + + + + + + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/MaskedInput/MinusKeyCustomizations/MinusKeyCustomizations_WPF.csproj b/MaskedInput/MinusKeyCustomizations/MinusKeyCustomizations_WPF.csproj new file mode 100644 index 000000000..85c986cd6 --- /dev/null +++ b/MaskedInput/MinusKeyCustomizations/MinusKeyCustomizations_WPF.csproj @@ -0,0 +1,128 @@ + + + + + Debug + AnyCPU + {4C534578-EFB5-488D-BC29-B809446C954D} + WinExe + Properties + MinusKeyCustomizations + MinusKeyCustomizations_WPF + v4.0 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + + + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + 4.0 + + + False + $(TELERIKWPFDIR)\Binaries\WPF40\Telerik.Windows.Controls.dll + + + False + $(TELERIKWPFDIR)\Binaries\WPF40\Telerik.Windows.Controls.Input.dll + + + + + + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + App.xaml + Code + + + Example.xaml + + + MainWindow.xaml + Code + + + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + + + + \ No newline at end of file diff --git a/MaskedInput/MinusKeyCustomizations/NumericInputMinusClearsSelection.cs b/MaskedInput/MinusKeyCustomizations/NumericInputMinusClearsSelection.cs new file mode 100644 index 000000000..d16e7322f --- /dev/null +++ b/MaskedInput/MinusKeyCustomizations/NumericInputMinusClearsSelection.cs @@ -0,0 +1,26 @@ +using System; +using System.Linq; +using Telerik.Windows.Controls; + +namespace MinusKeyCustomizations +{ + public class NumericInputMinusClearsSelection : RadMaskedNumericInput + { + protected override bool HandleSubstractKey() + { + // Show Negative symnbol when all is selected. + if (!string.IsNullOrEmpty(this.Text) && this.Text.Length == this.SelectionLength) + { + if (this.ClearCommand != null) + { + this.ClearCommand.Execute(null); + } + + this.ToggleNegativeSignKey(); + return true; + } + + return base.HandleSubstractKey(); + } + } +} diff --git a/MaskedInput/MinusKeyCustomizations/NumericInputMinusDeletable.cs b/MaskedInput/MinusKeyCustomizations/NumericInputMinusDeletable.cs new file mode 100644 index 000000000..2616ea82c --- /dev/null +++ b/MaskedInput/MinusKeyCustomizations/NumericInputMinusDeletable.cs @@ -0,0 +1,75 @@ +using System; +using System.Linq; +using System.Windows.Controls; +using Telerik.Windows.Controls; + +namespace MinusKeyCustomizations +{ + public class NumericInputMinusDeletable : RadMaskedNumericInput + { + private TextBox innerTextBox = null; + + public string TextInternal + { + get + { + return this.innerTextBox == null ? null : this.innerTextBox.Text; + } + } + + public override void OnApplyTemplate() + { + base.OnApplyTemplate(); + this.innerTextBox = this.GetTemplateChild("EditorSite") as TextBox; + } + + protected override bool CanModifyChar(char character) + { + if (character.ToString() == this.NegativeSign.Token) + { + return true; + } + return base.CanModifyChar(character); + } + + protected override void HandleBackKeyNoMask() + { + this.TryClearAll(); + + int selectionStart = this.SelectionStart; + base.HandleBackKeyNoMask(); + this.TryDeleteMinusSign(selectionStart); + } + + protected override void HandleDeleteKeyNoMask() + { + this.TryClearAll(); + + int selectionStart = this.SelectionStart; + base.HandleDeleteKeyNoMask(); + this.TryDeleteMinusSign(selectionStart); + } + + private void TryDeleteMinusSign(int nextSelectionStart) + { + if (this.IsNegativeValue && !string.IsNullOrEmpty(this.TextInternal) && !this.TextInternal.Contains(this.NegativeSign.Token)) + { + // Dispatcher makes so that Value is updated first, then the negativity change. + Dispatcher.BeginInvoke(new Action(() => + { + this.ToggleNegativeSignKey(); + this.SelectionStart = nextSelectionStart; + })); + } + } + + private void TryClearAll() + { + if (this.TextInternal.Length == this.SelectionLength && this.ClearCommand != null) + { + this.ClearCommand.Execute(null); + return; + } + } + } +} diff --git a/MaskedInput/MinusKeyCustomizations/Properties/AppManifest.xml b/MaskedInput/MinusKeyCustomizations/Properties/AppManifest.xml new file mode 100644 index 000000000..6712a1178 --- /dev/null +++ b/MaskedInput/MinusKeyCustomizations/Properties/AppManifest.xml @@ -0,0 +1,6 @@ + + + + diff --git a/MaskedInput/MinusKeyCustomizations/Properties/AssemblyInfo.cs b/MaskedInput/MinusKeyCustomizations/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..1b4baf625 --- /dev/null +++ b/MaskedInput/MinusKeyCustomizations/Properties/AssemblyInfo.cs @@ -0,0 +1,44 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MinusKeyCustomizations")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MinusKeyCustomizations")] +[assembly: AssemblyCopyright("Copyright © 2015")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/MaskedInput/MinusKeyCustomizations/Properties/Resources.Designer.cs b/MaskedInput/MinusKeyCustomizations/Properties/Resources.Designer.cs new file mode 100644 index 000000000..504f88904 --- /dev/null +++ b/MaskedInput/MinusKeyCustomizations/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace MinusKeyCustomizations.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MinusKeyCustomizations.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/MaskedInput/MinusKeyCustomizations/Properties/Resources.resx b/MaskedInput/MinusKeyCustomizations/Properties/Resources.resx new file mode 100644 index 000000000..af7dbebba --- /dev/null +++ b/MaskedInput/MinusKeyCustomizations/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/MaskedInput/MinusKeyCustomizations/Properties/Settings.Designer.cs b/MaskedInput/MinusKeyCustomizations/Properties/Settings.Designer.cs new file mode 100644 index 000000000..8f5ace47f --- /dev/null +++ b/MaskedInput/MinusKeyCustomizations/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace MinusKeyCustomizations.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/MaskedInput/MinusKeyCustomizations/Properties/Settings.settings b/MaskedInput/MinusKeyCustomizations/Properties/Settings.settings new file mode 100644 index 000000000..033d7a5e9 --- /dev/null +++ b/MaskedInput/MinusKeyCustomizations/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/MaskedInput/MinusKeyCustomizations/Readme.txt b/MaskedInput/MinusKeyCustomizations/Readme.txt new file mode 100644 index 000000000..bfc4a9fac --- /dev/null +++ b/MaskedInput/MinusKeyCustomizations/Readme.txt @@ -0,0 +1,7 @@ +MinusKeyCustomizations SDK sample shows how to use the negative sign symbol in custom, non- default way. +Please note that although the code shows RadMaskedNumericInput and its custom subclasses, the same approach can be used for RadMaskedCurrencyInput. +* The first control in the demo is RadMaskedNumericInput with AllowMinusOnNullValues set to true. This allows you to press OemMinus / Subtract key on the keyboard when the value is null resulting in entering negative sign symbol before entering any digits. + +* The second control in the demo is custom RadMaskedNumericInput which allows you to select all and press OemMinus / Subtract key resulting in clearing the value and entering negative sign. This is achieved with overriding HandleSubtractkey method of RadMaskedNumericInput. + +* The third control in the demo is custom RadMaskedNumericInput which allows you to delete the negative sign symbol with Backspace / Delete keys on the keyboard. This is achieved with overriding CanModifyChar, HandleBackKeyNoMask and HandleDeleteKeyNoMaks methods of the RadMaskedNumericInput. diff --git a/PdfProcessing/CreateDocumentWithImages/MainViewModel.cs b/PdfProcessing/CreateDocumentWithImages/MainViewModel.cs index 8a3057a13..6326889f3 100644 --- a/PdfProcessing/CreateDocumentWithImages/MainViewModel.cs +++ b/PdfProcessing/CreateDocumentWithImages/MainViewModel.cs @@ -248,9 +248,10 @@ private static byte[] CompressDataWithDeflate(byte[] data) { using (MemoryStream stream = new MemoryStream()) { - CompressedStream compressedStream = new CompressedStream(stream, StreamOperationMode.Write, new DeflateSettings()); - compressedStream.Write(data, 0, data.Length); - compressedStream.Flush(); + using (CompressedStream compressedStream = new CompressedStream(stream, StreamOperationMode.Write, new DeflateSettings())) + { + compressedStream.Write(data, 0, data.Length); + } return stream.ToArray(); } diff --git a/PdfProcessing/CreateDocumentWithImages/Resources/ResourceHelper.cs b/PdfProcessing/CreateDocumentWithImages/Resources/ResourceHelper.cs deleted file mode 100644 index 535feaa23..000000000 --- a/PdfProcessing/CreateDocumentWithImages/Resources/ResourceHelper.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.IO; -using System.Reflection; -using System.Windows; - -namespace CreateDocumentWithImages.Resources -{ - public class ResourceHelper - { - public static Uri GetResourceUri(string resource) - { - AssemblyName assemblyName = new AssemblyName(typeof(ResourceHelper).Assembly.FullName); - string resourcePath = "/" + assemblyName.Name + ";component/" + resource; - Uri resourceUri = new Uri(resourcePath, UriKind.Relative); - - return resourceUri; - } - - public static Stream GetResourceStream(string resource) - { - return Application.GetResourceStream(ResourceHelper.GetResourceUri(resource)).Stream; - } - - public static byte[] GetResourceBytes(string resource) - { - MemoryStream memory = new MemoryStream(); - - using(Stream stream = GetResourceStream(resource)) - { - stream.CopyTo(memory); - } - - return memory.ToArray(); - } - } -} diff --git a/PropertyGrid/CollectionEditorCustomDataType/App.xaml b/PropertyGrid/CollectionEditorCustomDataType/App.xaml new file mode 100644 index 000000000..2cc4b4f0d --- /dev/null +++ b/PropertyGrid/CollectionEditorCustomDataType/App.xaml @@ -0,0 +1,8 @@ + + + + + diff --git a/GridView/CreateCustomDateTimePickerColumn/App.xaml.cs b/PropertyGrid/CollectionEditorCustomDataType/App.xaml.cs similarity index 100% rename from GridView/CreateCustomDateTimePickerColumn/App.xaml.cs rename to PropertyGrid/CollectionEditorCustomDataType/App.xaml.cs diff --git a/PropertyGrid/CollectionEditorCustomDataType/App_SL.xaml b/PropertyGrid/CollectionEditorCustomDataType/App_SL.xaml new file mode 100644 index 000000000..9a3dacc63 --- /dev/null +++ b/PropertyGrid/CollectionEditorCustomDataType/App_SL.xaml @@ -0,0 +1,8 @@ + + + + + diff --git a/PropertyGrid/CollectionEditorCustomDataType/App_SL.xaml.cs b/PropertyGrid/CollectionEditorCustomDataType/App_SL.xaml.cs new file mode 100644 index 000000000..b3d8d885a --- /dev/null +++ b/PropertyGrid/CollectionEditorCustomDataType/App_SL.xaml.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Shapes; + +namespace SilverlightApplication1 +{ + public partial class App : Application + { + + public App() + { + this.Startup += this.Application_Startup; + this.Exit += this.Application_Exit; + this.UnhandledException += this.Application_UnhandledException; + + InitializeComponent(); + } + + private void Application_Startup(object sender, StartupEventArgs e) + { + this.RootVisual = new MainPage(); + } + + private void Application_Exit(object sender, EventArgs e) + { + + } + + private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e) + { + // If the app is running outside of the debugger then report the exception using + // the browser's exception mechanism. On IE this will display it a yellow alert + // icon in the status bar and Firefox will display a script error. + if (!System.Diagnostics.Debugger.IsAttached) + { + + // NOTE: This will allow the application to continue running after an exception has been thrown + // but not handled. + // For production applications this error handling should be replaced with something that will + // report the error to the website and stop the application. + e.Handled = true; + Deployment.Current.Dispatcher.BeginInvoke(delegate { ReportErrorToDOM(e); }); + } + } + + private void ReportErrorToDOM(ApplicationUnhandledExceptionEventArgs e) + { + try + { + string errorMsg = e.ExceptionObject.Message + e.ExceptionObject.StackTrace; + errorMsg = errorMsg.Replace('"', '\'').Replace("\r\n", @"\n"); + + System.Windows.Browser.HtmlPage.Window.Eval("throw new Error(\"Unhandled Error in Silverlight Application " + errorMsg + "\");"); + } + catch (Exception) + { + } + } + } +} diff --git a/GridView/CreateCustomDateTimePickerColumn/CreateCustomDateTimePickerColumn_SL.csproj b/PropertyGrid/CollectionEditorCustomDataType/CollectionEditorCustomDataType_SL.csproj similarity index 78% rename from GridView/CreateCustomDateTimePickerColumn/CreateCustomDateTimePickerColumn_SL.csproj rename to PropertyGrid/CollectionEditorCustomDataType/CollectionEditorCustomDataType_SL.csproj index 13656a0b6..eeb7233eb 100644 --- a/GridView/CreateCustomDateTimePickerColumn/CreateCustomDateTimePickerColumn_SL.csproj +++ b/PropertyGrid/CollectionEditorCustomDataType/CollectionEditorCustomDataType_SL.csproj @@ -5,11 +5,11 @@ AnyCPU 8.0.50727 2.0 - {5EAB03FF-9DC1-4BE6-9E00-4CEC4225D765} + {0C8BF2F1-6CAC-4E7E-969B-9B93C5C03D30} {A1591282-1198-4647-A2B1-27E5FF5F6F3B};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} Library Properties - CreateCustomDateTimePickerColumn + SilverlightApplication1 SilverlightApplication1 Silverlight v5.0 @@ -21,7 +21,7 @@ true SilverlightApplication1.xap Properties\AppManifest.xml - CreateCustomDateTimePickerColumn.App + SilverlightApplication1.App SilverlightApplication1TestPage.html true true @@ -57,7 +57,7 @@ pdbonly true Bin\Release - TRACE;SILVERLIGHT + TRACE true true prompt @@ -73,35 +73,28 @@ - $(TELERIKSLDIR)\Binaries.NoXaml\Silverlight\Telerik.Windows.Controls.dll + $(TELERIKSLDIR)\Binaries\Silverlight\Telerik.Windows.Controls.dll + + + False + $(TELERIKSLDIR)\Binaries\Silverlight\Telerik.Windows.Controls.Data.dll - $(TELERIKSLDIR)\Binaries.NoXaml\Silverlight\Telerik.Windows.Data.dll + $(TELERIKSLDIR)\Binaries\Silverlight\Telerik.Windows.Data.dll - $(TELERIKSLDIR)\Binaries.NoXaml\Silverlight\Telerik.Windows.Controls.Input.dll - - - $(TELERIKSLDIR)\Binaries.NoXaml\Silverlight\Telerik.Windows.Controls.GridView.dll - - - $(TELERIKSLDIR)\Binaries.NoXaml\Silverlight\Telerik.Windows.Themes.Office_Black.dll + $(TELERIKSLDIR)\Binaries\Silverlight\Telerik.Windows.Controls.Input.dll App_SL.xaml - - - GenericDateTimePicker.xaml - - - Code - + MainPage.xaml + @@ -109,10 +102,6 @@ Designer MSBuild:Compile - - MSBuild:Compile - Designer - Designer MSBuild:Compile diff --git a/PropertyGrid/CollectionEditorCustomDataType/CollectionEditorCustomDataType_WPF.csproj b/PropertyGrid/CollectionEditorCustomDataType/CollectionEditorCustomDataType_WPF.csproj new file mode 100644 index 000000000..9c571bd90 --- /dev/null +++ b/PropertyGrid/CollectionEditorCustomDataType/CollectionEditorCustomDataType_WPF.csproj @@ -0,0 +1,161 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {E6DFBAD5-275E-4111-9CF1-7863953B4D43} + WinExe + Properties + WpfApplication1 + WpfApplication1 + v4.0 + Client + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + + + + + false + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + true + bin\Debug\ + TRACE;DEBUG;WPF + full + AnyCPU + prompt + MinimumRecommendedRules.ruleset + + + bin\Release\ + TRACE + true + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + + + + + + + + + + + 4.0 + + + $(TELERIKWPFDIR)\Binaries\WPF40\Telerik.Windows.Controls.dll + + + $(TELERIKWPFDIR)\Binaries\WPF40\Telerik.Windows.Controls.Data.dll + + + $(TELERIKWPFDIR)\Binaries\WPF40\Telerik.Windows.Controls.Input.dll + + + $(TELERIKWPFDIR)\Binaries\WPF40\Telerik.Windows.Data.dll + + + + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + App.xaml + Code + + + + MainWindow.xaml + Code + + + + + + Code + + + + + + + + + False + Microsoft .NET Framework 4 Client Profile %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/PropertyGrid/CollectionEditorCustomDataType/CustomString.cs b/PropertyGrid/CollectionEditorCustomDataType/CustomString.cs new file mode 100644 index 000000000..14c34bbb5 --- /dev/null +++ b/PropertyGrid/CollectionEditorCustomDataType/CustomString.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; + +namespace WpfApplication1 +{ + public class CustomString : INotifyPropertyChanged + { + + public event PropertyChangedEventHandler PropertyChanged; + + string _value; + + public CustomString() + { + + } + + public CustomString(string value) + { + this._value = value; + } + + public static implicit operator string(CustomString s) + { + return s.ToString(); + } + + public static implicit operator CustomString(string s) + { + return new CustomString(s); + } + + public string Value + { + get { return this._value; } + set + { + if (this._value != value) + { + this._value = value; + this.OnPropertyChanged("Value"); + } + } + } + + protected virtual void OnPropertyChanged(PropertyChangedEventArgs args) + { + PropertyChangedEventHandler handler = this.PropertyChanged; + if (handler != null) + { + handler(this, args); + } + } + + private void OnPropertyChanged(string propertyName) + { + this.OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); + } + + public override string ToString() + { + return _value.ToString(); + } + } +} diff --git a/PropertyGrid/CollectionEditorCustomDataType/MainPage.xaml b/PropertyGrid/CollectionEditorCustomDataType/MainPage.xaml new file mode 100644 index 000000000..be771a072 --- /dev/null +++ b/PropertyGrid/CollectionEditorCustomDataType/MainPage.xaml @@ -0,0 +1,29 @@ + + + + + + + + + + + + diff --git a/GridView/CreateCustomDateTimePickerColumn/MainPage.xaml.cs b/PropertyGrid/CollectionEditorCustomDataType/MainPage.xaml.cs similarity index 61% rename from GridView/CreateCustomDateTimePickerColumn/MainPage.xaml.cs rename to PropertyGrid/CollectionEditorCustomDataType/MainPage.xaml.cs index 3862f9e50..5db8c3034 100644 --- a/GridView/CreateCustomDateTimePickerColumn/MainPage.xaml.cs +++ b/PropertyGrid/CollectionEditorCustomDataType/MainPage.xaml.cs @@ -1,16 +1,17 @@ using System; using System.Linq; using System.Windows.Controls; -using CreateCustomDateTimePickerColumn; +using System.Windows.Input; +using System.Windows; +using Telerik.Windows.Controls; -namespace CreateCustomDateTimePickerColumn +namespace SilverlightApplication1 { public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); - this.radGridView.ItemsSource = Club.GetClubs(); } } } \ No newline at end of file diff --git a/PropertyGrid/CollectionEditorCustomDataType/MainWindow.xaml b/PropertyGrid/CollectionEditorCustomDataType/MainWindow.xaml new file mode 100644 index 000000000..19e78eded --- /dev/null +++ b/PropertyGrid/CollectionEditorCustomDataType/MainWindow.xaml @@ -0,0 +1,27 @@ + + + + + + + + + + + + diff --git a/GridView/CreateCustomDateTimePickerColumn/MainWindow.xaml.cs b/PropertyGrid/CollectionEditorCustomDataType/MainWindow.xaml.cs similarity index 77% rename from GridView/CreateCustomDateTimePickerColumn/MainWindow.xaml.cs rename to PropertyGrid/CollectionEditorCustomDataType/MainWindow.xaml.cs index 51f7aa96d..ac3e6d7c8 100644 --- a/GridView/CreateCustomDateTimePickerColumn/MainWindow.xaml.cs +++ b/PropertyGrid/CollectionEditorCustomDataType/MainWindow.xaml.cs @@ -2,7 +2,9 @@ using System.Linq; using System.Windows; using System.Windows.Input; -using CreateCustomDateTimePickerColumn; +using Telerik.Windows.Controls; +using System.Windows.Controls; +using CollectionEditorCustomDataType; namespace WpfApplication1 { @@ -14,7 +16,6 @@ public partial class MainWindow : Window public MainWindow() { InitializeComponent(); - this.radGridView.ItemsSource = Club.GetClubs(); } } } diff --git a/PropertyGrid/CollectionEditorCustomDataType/MyViewModel.cs b/PropertyGrid/CollectionEditorCustomDataType/MyViewModel.cs new file mode 100644 index 000000000..e18a3a7c7 --- /dev/null +++ b/PropertyGrid/CollectionEditorCustomDataType/MyViewModel.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; +using System.Collections.ObjectModel; +using WpfApplication1; + +namespace CollectionEditorCustomDataType +{ + public class MyViewModel : INotifyPropertyChanged + { + public event PropertyChangedEventHandler PropertyChanged; + + private ObservableCollection values; + + public ObservableCollection Values + { + get + { + if (this.values == null) + { + this.values = this.GenerateData(); + } + + return this.values; + } + } + + private ObservableCollection GenerateData() + { + ObservableCollection data = new ObservableCollection(); + + for (int i = 0; i < 10; i++) + { + data.Add("Value " + i.ToString()); + } + + return data; + } + + protected virtual void OnPropertyChanged(PropertyChangedEventArgs args) + { + PropertyChangedEventHandler handler = this.PropertyChanged; + if (handler != null) + { + handler(this, args); + } + } + + private void OnPropertyChanged(string propertyName) + { + this.OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); + } + } +} diff --git a/PropertyGrid/CollectionEditorCustomDataType/Properties/AppManifest.xml b/PropertyGrid/CollectionEditorCustomDataType/Properties/AppManifest.xml new file mode 100644 index 000000000..6712a1178 --- /dev/null +++ b/PropertyGrid/CollectionEditorCustomDataType/Properties/AppManifest.xml @@ -0,0 +1,6 @@ + + + + diff --git a/PropertyGrid/CollectionEditorCustomDataType/Properties/AssemblyInfo.cs b/PropertyGrid/CollectionEditorCustomDataType/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..a2233b57b --- /dev/null +++ b/PropertyGrid/CollectionEditorCustomDataType/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("CollectionEditorCustomDataType")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Telerik")] +[assembly: AssemblyProduct("CollectionEditorCustomDataType")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("c31a8e48-cf2e-47d9-89ef-b025822afeb3")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PropertyGrid/CollectionEditorCustomDataType/Readme.txt b/PropertyGrid/CollectionEditorCustomDataType/Readme.txt new file mode 100644 index 000000000..1706852d4 --- /dev/null +++ b/PropertyGrid/CollectionEditorCustomDataType/Readme.txt @@ -0,0 +1,8 @@ +#CollectionEditor# +This example demonstrates how to use CollectionEditor with custom data type. Built-in data types(as string, for example) does not have a default constructor, +thus cannot be added to the Collection editor's source collection. This can be achieved by using a custom object and casting it +to the one needed through an implicit operator. + +See also: +WPF: http://docs.telerik.com/devtools/wpf/controls/radpropertygrid/features/collectioneditor.html +SL: http://docs.telerik.com/devtools/silverlight/controls/radpropertygrid/features/collectioneditor.html \ No newline at end of file diff --git a/Spreadsheet/CustomFunctions/CustomFunctions_SL.csproj b/Spreadsheet/CustomFunctions/CustomFunctions_SL.csproj index 056762295..72113965a 100644 --- a/Spreadsheet/CustomFunctions/CustomFunctions_SL.csproj +++ b/Spreadsheet/CustomFunctions/CustomFunctions_SL.csproj @@ -118,6 +118,7 @@ + MainPage.xaml diff --git a/Spreadsheet/CustomFunctions/CustomFunctions_WPF.csproj b/Spreadsheet/CustomFunctions/CustomFunctions_WPF.csproj index 00f4e75d3..7ba8a3017 100644 --- a/Spreadsheet/CustomFunctions/CustomFunctions_WPF.csproj +++ b/Spreadsheet/CustomFunctions/CustomFunctions_WPF.csproj @@ -102,6 +102,7 @@ App_WPF.xaml Code + MainWindow.xaml Code diff --git a/Spreadsheet/CustomFunctions/Functions/Indirect.cs b/Spreadsheet/CustomFunctions/Functions/Indirect.cs new file mode 100644 index 000000000..cfce64ddd --- /dev/null +++ b/Spreadsheet/CustomFunctions/Functions/Indirect.cs @@ -0,0 +1,83 @@ +using System.Collections.Generic; +using System.Linq; +using Telerik.Windows.Documents.Spreadsheet.Expressions; +using Telerik.Windows.Documents.Spreadsheet.Expressions.Functions; +using Telerik.Windows.Documents.Spreadsheet.Model; +using Telerik.Windows.Documents.Spreadsheet.Utilities; + +namespace CustomFunctions.Functions +{ + public class Indirect : FunctionWithArguments + { + public static readonly string FunctionName = "INDIRECT"; + private static readonly FunctionInfo Info; + + public override string Name + { + get + { + return FunctionName; + } + } + + public override FunctionInfo FunctionInfo + { + get + { + return Info; + } + } + + static Indirect() + { + string description = "Returns the reference of the cell specified by a text string."; + + IEnumerable requiredArguments = new ArgumentInfo[] + { + new ArgumentInfo("Text", + "A reference to a cell that contains an A1-style reference, a name defined as a reference, or a reference to a cell as a text string.", + ArgumentType.Text), + }; + + Info = new FunctionInfo(FunctionName,FunctionCategory.LookupReference, description, requiredArguments); + } + + protected override RadExpression EvaluateOverride(FunctionEvaluationContext context) + { + string reference = context.Arguments[0].ToString(); + + if (string.IsNullOrEmpty(reference)) + { + return ErrorExpressions.ReferenceError; + } + + List cellReferenceRanges = new List(); + + CellReferenceRangeExpression expression; + if (NameConverter.TryConvertNamesToCellReferenceRangeExpression(reference, context.Worksheet, context.RowIndex, context.ColumnIndex, out expression)) + { + cellReferenceRanges.AddRange(expression.CellReferenceRanges); + } + + if (cellReferenceRanges.Count == 1) + { + CellReferenceRange cellReferenceRange = cellReferenceRanges.First(); + if (cellReferenceRange.Worksheet == context.Worksheet) + { + CellRange cellRange = cellReferenceRange.ToCellRange(); + if (cellRange.Contains(context.RowIndex, context.ColumnIndex)) + { + return ErrorExpressions.CyclicReference; + } + } + } + + if (cellReferenceRanges.Count == 0) + { + return ErrorExpressions.ReferenceError; + } + + return expression; + } + } +} diff --git a/Spreadsheet/CustomFunctions/MainPage.xaml.cs b/Spreadsheet/CustomFunctions/MainPage.xaml.cs index 569f5e116..ef305fcb9 100644 --- a/Spreadsheet/CustomFunctions/MainPage.xaml.cs +++ b/Spreadsheet/CustomFunctions/MainPage.xaml.cs @@ -43,6 +43,7 @@ void RegisterCustomFunctions() FunctionManager.RegisterFunction(new RepeatString()); FunctionManager.RegisterFunction(new Nand()); FunctionManager.RegisterFunction(new CustomFunctions.Functions.Upper()); + FunctionManager.RegisterFunction(new CustomFunctions.Functions.Indirect()); } } } diff --git a/Spreadsheet/CustomFunctions/Readme.txt b/Spreadsheet/CustomFunctions/Readme.txt index 4eae21c43..61507b048 100644 --- a/Spreadsheet/CustomFunctions/Readme.txt +++ b/Spreadsheet/CustomFunctions/Readme.txt @@ -2,6 +2,7 @@ This examples shows how to create and register custom functions in RadSpreadshee The example shows several functions inheriting from different members from RadSpreadsheet functions inheritance tree. - Arguments and E functions are inheriting from FunctionBase abstract class. - RepeatString function is inheriting from FunctionWithArguments abstract class. + - Indirect function is inheriting from FunctionWithArguments abstract class and is overriding the definition of the default RadSpreadsheet "INDIRECT" function. It also demonstrates the usage of CellReferenceRangeExpression. - Add and GeoMean functions are inheriting from NumbersInFunction abstract class and are using their own ArgumentConversionRules. - Nand function is inheriting from BooleansInFunction abstract class. - Upper function is inheriting from StringsInFunction abstract class and is overriding the definition of the default RadSpreadsheet "UPPER" function. diff --git a/Spreadsheet/CustomFunctions/Resources/CustomFunctions.xlsx b/Spreadsheet/CustomFunctions/Resources/CustomFunctions.xlsx index 1b880b0463165bf3434985de04a0209532d26c82..196b5d1b635dcfe2c6a20cfb10cc60c80b43c02b 100644 GIT binary patch literal 9265 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