or
{ public int Id { get; set; } public string Name { get; set; } }
public class Person { public string Name { get; set; } public int? GenderId { get; set; } public bool IsActive { get; set; } }
<telerik1:RadGridView x:Name="Grid" ItemsSource="{Binding Persons}" IsSynchronizedWithCurrentItem="True" AutoGenerateColumns="False" ShowGroupPanel="False" ShowInsertRow="True" CanUserInsertRows="true"> <telerik1:RadGridView.Columns> <telerik1:GridViewDataColumn Header="Name" DataMemberBinding="{Binding Name}" Width="*" /> <telerik1:GridViewComboBoxColumn Name="Gender" Header="Gender" DataMemberBinding="{Binding GenderId}" DisplayMemberPath="Name" SelectedValueMemberPath="Id" ItemsSourceBinding="{Binding Genders}" EditTriggers="CellClick" IsReadOnly="False" Width="80" /> <telerik1:GridViewCheckBoxColumn DataMemberBinding="{Binding IsActive}" Header="Active" IsReadOnly="False" /> </telerik1:RadGridView.Columns> </telerik1:RadGridView>
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); DataContext = this; Genders = new ObservableCollection<Gender> { new Gender {Id = 0, Name = "Female"}, new Gender {Id = 1, Name = "Male"}, new Gender {Id = 2, Name = "Withheld"} }; Persons = new ObservableCollection<Person> { new Person {Name = "Andy", GenderId = 1, IsActive = false}, new Person {Name = "Mary", GenderId = 0, IsActive = true}, new Person {Name = "Peta", GenderId = 2, IsActive = true}, new Person {Name = "Gerald", GenderId = 0, IsActive = true} }; } public ObservableCollection<Gender> Genders { get; set; } public ObservableCollection<Person> Persons { get; set; } } So, I'm convinced I'm setting properties wrong on the GridViewComboBoxColumn or setting the wrong properties. What is wrong with the above scenario?
private
ITileItemModel _currentItem;
public
ITileItemModel CurrentItem
{
get
{
return
_currentItem;
}
set
{
if
(_currentItem == value)
return
;
if
(func())
return
;
_currentItem = value;
RaisePropertyChanged(() => CurrentItem);
}
}
<
telerik:RadBreadcrumb
x:Name
=
"NavigationBreadcrumb"
HorizontalAlignment
=
"Stretch"
VerticalAlignment
=
"Top"
TextModePath
=
"TilePath"
IsTextModeEnabled
=
"False"
HeaderMemberPath
=
"Header"
HierarchicalItemsSource
=
"Children"
HierarchicalMemberPath
=
"Header"
IsHistoryEnabled
=
"False"
Header
=
"{Binding Root}"
ItemsSource
=
"{Binding Root.Children}"
CurrentItem
=
"{Binding CurrentItem, Mode=TwoWay}"
>
</
telerik:RadBreadcrumb
>
<
telerik:RadWindow.HeaderTemplate
>
<
DataTemplate
>
<
StackPanel
Orientation
=
"Horizontal"
>
<
Button
x:Name
=
"btn"
Content
=
"button"
Command
=
"{Binding Path=SaveCommand}"
/>
</
StackPanel
>
</
DataTemplate
>
</
telerik:RadWindow.HeaderTemplate
>
private
DelegateCommand _saveCommand;
public
ICommand SaveCommand
{
get
{
if
(_saveCommand ==
null
)
_saveCommand =
new
DelegateCommand(param => SaveIndicator(), param => CanSaveIndicator());
return
_saveCommand;
}
}
public
void
SaveIndicator()
{
}
protected
bool
CanSaveIndicator()
{
if
(eAppState == AppState.Fresh)
return
false
;
return
true
;
}
InterpolatedIndicators.AddEditIndicators view =
new
InterpolatedIndicators.AddEditIndicators();
view.DataContext =
new
InterpolatedIndicators.AddEditIndicatorsViewModel();
view.Owner =
this
;
view.ShowDialog();
<
Button
x:Name
=
"btn"
Content
=
"button"
Command
=
"{Binding Path=DataContext.SaveCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"
/>