I invested my full day with thinking I can do it after reading so many suggestions and forums. But Somehow its not working out for me. Please help
http://stackoverflow.com/questions/24791557/radgridview-edit-button-command-not-binding-in-prism-4-1-silverlight-5
How I've implemented MVVM is like this
http://stackoverflow.com/questions/24793890/no-response-at-page-after-refresh-in-silverlight-5-prism-4-1-unity-mvvm-applica
After lot of Try I'm not able to do it. My Current Code is like this
XAML :
in my ViewModel :
Initially in place of Telerik button I was trying with Image icon. but I wasn't having Command to Bind so I changed it to Button. for more MVVM please follow my stackoverflow post.
http://www.telerik.com/forums/custom-button-command-method , I followed few other link too. But No success
eagerly waiting for any help.
Thank you
http://stackoverflow.com/questions/24791557/radgridview-edit-button-command-not-binding-in-prism-4-1-silverlight-5
How I've implemented MVVM is like this
http://stackoverflow.com/questions/24793890/no-response-at-page-after-refresh-in-silverlight-5-prism-4-1-unity-mvvm-applica
After lot of Try I'm not able to do it. My Current Code is like this
XAML :
namespace Abs.Module.Admin.UserTab.ViewModel
{
//Abs.Infrastructure.ViewModel.ViewModelBase
public class UsersTabViewModel : TabViewModelBase , IUsersTabViewModel
{
private UserRiaDomainContext ctx;
public UsersTabViewModel(IUsersTabView view):base(view) {
this.Header = "Users";
this.Title = "Users";
this.IsSelected = true;
ctx = new UserRiaDomainContext();
fillUser();
doEventBinding();
}
private IEnumerable<
User
> _allUser;
public IEnumerable<
User
> AllUser {
get { return _allUser; }
set {
_allUser = value;
OnPropertyChanged("AllUser");
}
}
private void fillUser() {
/* var users = from u in ctx.Users select u;
foreach(var usr in users){
AllUser.Add(usr);
}*/
LoadOperation<
User
> op = this.ctx.Load<
User
>(this.ctx.GetUsersQuery());
AllUser=op.Entities;
}
/// Command for User Event Bindings
///
private void doEventBinding() {
AddUserEventCommand = new DelegateCommand(AddUser, CanAddUser);
UpdateUserEventCommand = new DelegateCommand(EditUser, CanEditUser);
}
/// <
summary
>
/// Edit User Validation before Compelting Event
/// </
summary
>
/// <
returns
>bool </
returns
>
private bool CanEditUser()
{
return true;
}
/// <
summary
>
/// Edit User Command For Editing User
/// </
summary
>
private void EditUser()
{
MessageBox.Show("I can fire edit event");
}
/// <
summary
>
/// Add User Validation before Compelting Event
///
/// </
summary
>
/// <
returns
>bool</
returns
>
private bool CanAddUser()
{
return true;
}
/// <
summary
>
/// Add User Command For Editing User
/// </
summary
>
private void AddUser()
{
MessageBox.Show("I can fire Add event");
}
/// Bind with User Add
private DelegateCommand _addUserEventCommand;
public DelegateCommand AddUserEventCommand
{
get { return _addUserEventCommand; }
set
{
_addUserEventCommand = value;
OnPropertyChanged("AddUserEventCommand");
}
}
/// Bind with User Update in Grid Row
private DelegateCommand _updateUserEventCommand;
public DelegateCommand UpdateUserEventCommand {
get { return _updateUserEventCommand; }
set {
_updateUserEventCommand = value;
OnPropertyChanged("UpdateUserEventCommand");
}
}
}
}
in my ViewModel :
<
UserControl
xmlns:prism
=
"http://www.codeplex.com/prism"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
x:Class
=
"Abs.Module.Admin.UserTab.View.UsersTab"
mc:Ignorable
=
"d"
d:DesignHeight
=
"300"
d:DesignWidth
=
"400"
>
<
Grid
x:Name
=
"LayoutRoot"
Background
=
"White"
>
<
Grid.Resources
>
<
Style
TargetType
=
"telerik:RadGridView"
>
<
Setter
Property
=
"FontSize"
Value
=
"13"
>
</
Setter
>
<
Setter
Property
=
"FontFamily"
Value
=
"Tahoma"
>
</
Setter
>
</
Style
>
</
Grid.Resources
>
<
telerik:RadButton
Command
=
"{Binding AddUserEventCommand}"
Content
=
"Add User"
VerticalAlignment
=
"Top"
></
telerik:RadButton
>
<
telerik:RadGridView
HorizontalAlignment
=
"Stretch"
Margin
=
"0,25,0,0"
VerticalAlignment
=
"Top"
ItemsSource
=
"{Binding AllUser}"
AutoGenerateColumns
=
"False"
IsReadOnly
=
"True"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewColumn
Width
=
"80"
>
<
telerik:GridViewColumn.Header
>
<
StackPanel
Orientation
=
"Horizontal"
VerticalAlignment
=
"Top"
HorizontalAlignment
=
"Center"
>
<
telerik:RadButton
Command
=
"{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl}, Path=AddUserEventCommand}"
Background
=
"Green"
Foreground
=
"WhiteSmoke"
FontSize
=
"14"
Padding
=
"10,5,10,5"
>
<
Image
Source
=
"../../Assets/Images/icon_user_add.png"
Cursor
=
"Hand"
Stretch
=
"None"
Width
=
"32"
Height
=
"32"
/>
</
telerik:RadButton
>
</
StackPanel
>
</
telerik:GridViewColumn.Header
>
<
telerik:GridViewColumn.CellTemplate
>
<
DataTemplate
>
<
telerik:RadButton
prism:Click.Command
=
"{Binding AddUserEventCommand}"
Background
=
"Green"
Foreground
=
"WhiteSmoke"
FontSize
=
"14"
>
<
Image
Source
=
"../../Assets/Images/icon_user_update.png"
Cursor
=
"Hand"
Stretch
=
"None"
Width
=
"32"
Height
=
"32"
>
</
Image
>
</
telerik:RadButton
>
</
DataTemplate
>
</
telerik:GridViewColumn.CellTemplate
>
</
telerik:GridViewColumn
>
<
telerik:GridViewDataColumn
Header
=
"Userid"
DataMemberBinding
=
"{Binding Userid}"
/>
<
telerik:GridViewDataColumn
Header
=
"First Name"
DataMemberBinding
=
"{Binding Fname}"
/>
<
telerik:GridViewDataColumn
Header
=
"Last Name"
DataMemberBinding
=
"{Binding Lname}"
/>
<
telerik:GridViewDataColumn
Header
=
"Email"
DataMemberBinding
=
"{Binding Email}"
/>
<
telerik:GridViewDataColumn
Header
=
"Phone"
DataMemberBinding
=
"{Binding Phone}"
/>
<
telerik:GridViewDataColumn
Header
=
"Role"
DataMemberBinding
=
"{Binding Role}"
/>
<
telerik:GridViewDataColumn
Header
=
"Last Login"
DataMemberBinding
=
"{Binding Lastlogin}"
/>
<
telerik:GridViewDataColumn
Header
=
"Created On"
DataMemberBinding
=
"{Binding Datecreated}"
/>
<
telerik:GridViewDataColumn
Header
=
"Created By"
DataMemberBinding
=
"{Binding Createdby}"
/>
<
telerik:GridViewDataColumn
Header
=
"Updated On"
DataMemberBinding
=
"{Binding Dateupdated}"
/>
<
telerik:GridViewDataColumn
Header
=
"Updated By"
DataMemberBinding
=
"{Binding Updatedby}"
/>
</
telerik:RadGridView.Columns
>
</
telerik:RadGridView
>
</
Grid
>
</
UserControl
>
Initially in place of Telerik button I was trying with Image icon. but I wasn't having Command to Bind so I changed it to Button. for more MVVM please follow my stackoverflow post.
http://www.telerik.com/forums/custom-button-command-method , I followed few other link too. But No success
eagerly waiting for any help.
Thank you