or
<
telerik:RadPaneGroup
x:Name
=
"RadPaneGroupMain"
ItemsSource
=
"{Binding OpenDocuments}"
ItemTemplateSelector
=
" {StaticResource OpenDocumentTemplateSelector}"
>
</
telerik:RadPaneGroup
>
internal
class
ModuleNodeEntityDataTemplateSelector : DataTemplateSelector
{
public
const
string
NoModuleEntityEditorTemplateKey =
"NoModuleEntityEditorTemplate"
;
public
override
DataTemplate SelectTemplate(
object
item, DependencyObject container)
{
var containerTyped = (RadPaneGroup)container;
return
(DataTemplate) containerTyped.Resources[NoModuleEntityEditorTemplateKey];
}
}
<
Window
x:Class
=
"RadComboBox1.MainWindow"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
Title
=
"MainWindow"
Height
=
"350"
Width
=
"525"
>
<
Grid
>
<
StackPanel
>
<
TextBlock
Name
=
"MyTextBlock"
Text
=
"{Binding SelectedItem.Name}"
/>
<
telerik:RadComboBox
Name
=
"MyRadComboBox"
ItemsSource
=
"{Binding Items}"
SelectedItem
=
"{Binding SelectedItem, Mode=TwoWay}"
IsEditable
=
"True"
DisplayMemberPath
=
"Name"
CanAutocompleteSelectItems
=
"False"
OpenDropDownOnFocus
=
"True"
TextSearchMode
=
"Contains"
IsFilteringEnabled
=
"True"
>
</
telerik:RadComboBox
>
</
StackPanel
>
</
Grid
>
</
Window
>
using
System;
using
System.Collections.ObjectModel;
using
System.ComponentModel;
using
System.Windows;
using
System.Windows.Threading;
namespace
RadComboBox1
{
public
partial
class
MainWindow : Window
{
public
MainWindow()
{
InitializeComponent();
var dataContext =
new
RadComboBoxDataContext();
MyRadComboBox.DataContext = dataContext;
MyTextBlock.DataContext = dataContext;
}
}
public
class
RadComboBoxItem
{
public
string
Name {
get
;
set
; }
}
public
class
RadComboBoxDataContext : INotifyPropertyChanged
{
public
ObservableCollection<RadComboBoxItem> Items {
get
;
set
; }
private
RadComboBoxItem _selectedItem;
public
RadComboBoxItem SelectedItem
{
get
{
var value = _selectedItem;
System.Diagnostics.Debug.WriteLine(
"GET="
+ (value !=
null
? value.Name :
"<null>"
));
return
value;
}
set
{
System.Diagnostics.Debug.WriteLine(
"SET="
+ (value !=
null
? value.Name :
"<null>"
));
_nextSelectedItem = value;
_timer.Stop();
_timer.Start();
}
}
private
RadComboBoxItem _nextSelectedItem;
private
DispatcherTimer _timer;
public
RadComboBoxDataContext()
{
_timer =
new
DispatcherTimer();
_timer.Interval = TimeSpan.FromMilliseconds(1000);
_timer.Tick += OnTick;
Items =
new
ObservableCollection<RadComboBoxItem>();
for
(var i = 0; i < 10; i++)
{
Items.Add(
new
RadComboBoxItem { Name =
"Item"
+ i});
}
SelectedItem = Items[0];
}
private
void
OnTick(
object
sender, EventArgs args)
{
_timer.Stop();
_selectedItem = _nextSelectedItem;
OnPropertyChanged(
"SelectedItem"
);
}
public
event
PropertyChangedEventHandler PropertyChanged;
protected
virtual
void
OnPropertyChanged(
string
propertyName =
null
)
{
PropertyChangedEventHandler handler = PropertyChanged;
if
(handler !=
null
)
{
handler(
this
,
new
PropertyChangedEventArgs(propertyName));
}
}
}
}