I use the RadComboBox from Telerik in a WPF project.
My Problem is that the selected text is not updated when the selected item changes its value. So when the ViewModel changes the `Name` property of the `SelectedItem`, I can not see this in the RadComboBox.
Note: The `SelectedItem` implements `INotifyPropertyChanged` and is calling the event.
Full source code:
public
class
MainViewModel : INotifyPropertyChanged
{
private
readonly
List<Item> _items =
new
List<Item>();
private
Item _selectedItem;
public
MainViewModel()
{
_items.Add(
new
Item { Name =
"Eg Zomh JywS"
});
_items.Add(
new
Item { Name =
"Ua Qvp Lavwz"
});
_items.Add(
new
Item { Name =
"Nee Lzx Rdaq"
});
_items.Add(
new
Item { Name =
"Um Ztgi Yvsg"
});
_items.Add(
new
Item { Name =
"tma Oppt fzd"
});
_items.Add(
new
Item { Name =
"Du Zofcy Fbs"
});
_items.Add(
new
Item { Name =
"bc Ey Ppvvcp"
});
_items.Add(
new
Item { Name =
"Mv RSIZtf WE"
});
_items.Add(
new
Item { Name =
"BFb YYZ PHwC"
});
_items.Add(
new
Item { Name =
"YSW LQ DXxHu"
});
}
public
event
PropertyChangedEventHandler PropertyChanged;
public
IEnumerable<Item> Items {
get
{
return
_items; } }
public
Item SelectedItem
{
get
{
return
_selectedItem; }
set
{
_selectedItem = value;
OnPropertyChanged(
"SelectedItem"
);
OnPropertyChanged(
"SelectedItemName"
);
}
}
public
string
SelectedItemName
{
get
{
return
_selectedItem !=
null
? _selectedItem.Name :
null
; }
set
{
if
(_selectedItem !=
null
)
{
_selectedItem.Name = value;
OnPropertyChanged(
"SelectedItemName"
);
}
}
}
protected
virtual
void
OnPropertyChanged(
string
propertyName)
{
var handler = PropertyChanged;
if
(handler !=
null
)
{
handler(
this
,
new
PropertyChangedEventArgs(propertyName));
}
}
}
public
class
Item : INotifyPropertyChanged
{
private
string
_name;
public
event
PropertyChangedEventHandler PropertyChanged;
public
string
Name
{
get
{
return
_name; }
set
{
_name = value;
OnPropertyChanged(
"Name"
);
}
}
protected
virtual
void
OnPropertyChanged(
string
propertyName)
{
var handler = PropertyChanged;
if
(handler !=
null
)
{
handler(
this
,
new
PropertyChangedEventArgs(propertyName));
}
}
}
<
Window
x:Class
=
"TelerikRadComboBoxProblem.MainWindow"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
Title
=
"MainWindow"
Height
=
"150"
Width
=
"300"
>
<
Grid
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
=
"Auto"
/>
<
RowDefinition
Height
=
"Auto"
/>
<
RowDefinition
Height
=
"*"
/>
</
Grid.RowDefinitions
>
<
Grid.ColumnDefinitions
>
<
ColumnDefinition
Width
=
"Auto"
/>
<
ColumnDefinition
Width
=
"*"
/>
</
Grid.ColumnDefinitions
>
<
TextBlock
Text
=
"Search: "
VerticalAlignment
=
"Center"
/>
<
telerik:RadComboBox
Grid.Row
=
"0"
Grid.Column
=
"1"
ItemsSource
=
"{Binding Items, Mode=OneWay}"
SelectedItem
=
"{Binding SelectedItem, Mode=TwoWay}"
StaysOpenOnEdit
=
"True"
DisplayMemberPath
=
"Name"
CanAutocompleteSelectItems
=
"False"
IsEditable
=
"True"
IsReadOnly
=
"False"
OpenDropDownOnFocus
=
"True"
IsFilteringEnabled
=
"True"
TextSearchMode
=
"Contains"
>
</
telerik:RadComboBox
>
<
TextBlock
Grid.Row
=
"1"
Grid.Column
=
"0"
Text
=
"Rename: "
VerticalAlignment
=
"Center"
/>
<
TextBox
Grid.Row
=
"1"
Grid.Column
=
"1"
Text
=
"{Binding SelectedItemName, Mode=TwoWay}"
/>
</
Grid
>
</
Window
>
public
partial
class
MainWindow
{
public
MainWindow()
{
InitializeComponent();
DataContext =
new
MainViewModel();
}
}
Hello Telerik,
I am using version 2013.2.724.40 and I have the following problem. I’m working on an MVVM WPF application. It is a multi-thread application which draws data form a postgres db, displays the data and writes them in to a SQL EXPRESS DB. In one (two) View(s) the data can be displayed and manipulate in a RadGridView this is directly bound to a QueryableEntityCollectionView<>, I’m using the Microsoft Entity Framework.
Occasionally and absolutely not reproducible, but nonetheless too often I get an unhandled EntityCommandExecutionException, mostly when the user push a button to change the View. The Inner Exception is "A severe error occurred on the current command. The results, if any, should be discarded.". If this occurs in the Debugger and when I have a look at the stack, it looks like in the attached picture.
I have the suspicion that comes from the QueryableEntityCollectionView<> bound to the RadGridView, but I have no idea how to prevent this and/or on which place I should enclose some code with a try catch block.
As you can see in the stack none of my functions or classes are involved.
May be someone have an idea.
Regards Uwe
<telerik:RadRibbonButton telerik:ScreenTip.Description="Start a new section at the current position." LargeImage="pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/32/PageBreak.png" telerik:RadRichTextBoxRibbonUI.RichTextCommand="{Binding InsertSectionBreakCommand}" Size="Large" Text="Section Break" telerik:ScreenTip.Title="Section Break" />
There seems to be such a command asInsertSectionBreakCommand, but it does no seem to be implemented or something
<
tel:RadCartesianChart
>
<
tel:RadCartesianChart.HorizontalAxis
>
<
tel:CategoricalAxis
/>
</
tel:RadCartesianChart.HorizontalAxis
>
<
tel:RadCartesianChart.VerticalAxis
>
<
tel:LinearAxis
/>
</
tel:RadCartesianChart.VerticalAxis
>
<
tel:RadCartesianChart.Series
>
<
tel:LineSeries
Stroke
=
"Orange"
StrokeThickness
=
"2"
>
<
tel:LineSeries.DataPoints
>
<
tel:CategoricalDataPoint
Category
=
"1"
Value
=
"10"
/>
<
tel:CategoricalDataPoint
Category
=
"2"
Value
=
"30"
/>
<
tel:CategoricalDataPoint
Category
=
"3"
Value
=
"20"
/>
</
tel:LineSeries.DataPoints
>
</
tel:LineSeries
>
<
tel:LineSeries
Stroke
=
"Blue"
StrokeThickness
=
"2"
>
<
tel:LineSeries.DataPoints
>
<
tel:CategoricalDataPoint
Category
=
"1.1"
Value
=
"45"
/>
<
tel:CategoricalDataPoint
Category
=
"2.1"
Value
=
"20"
/>
<
tel:CategoricalDataPoint
Category
=
"3.1"
Value
=
"40"
/>
</
tel:LineSeries.DataPoints
>
</
tel:LineSeries
>
</
tel:RadCartesianChart.Series
>
</
tel:RadCartesianChart
>