or

Hi,
I have a requirement
Requirement 1# : Inside a Hirerchy Template placed 2 Grids where in
1st grid 3 columns where 1 column has Combo Box loaded with Values.
For ex: Football, Disco
If i select Football, 2 grid placed inside Hirechy Template should be visible or else visbility of that grid should be collapsed.
How can i solve this.
Requirement 2#: Can i pass Observable collection as converter parameter
<Radcombobox selecteditem={Binding collection, converter={}} -> to show as like A,B,C (Selected Items as comma separated)
<controls:RadGridView Name="clubsGrid" ItemsSource="{Binding Clubs}" Grid.Row="0" AutoGenerateColumns="False" IsReadOnly="True" SelectionMode="Single" DataContext="{StaticResource MyViewModel}"> <controls:RadGridView.ChildTableDefinitions> <controls:GridViewTableDefinition/> </controls:RadGridView.ChildTableDefinitions> <controls:RadGridView.Columns> <controls:GridViewDataColumn DataMemberBinding="{Binding Name}" Header="Est."></controls:GridViewDataColumn> <controls:GridViewDataColumn DataMemberBinding="{Binding Established}"></controls:GridViewDataColumn> </controls:RadGridView.Columns> <controls:RadGridView.HierarchyChildTemplate> <DataTemplate> <controls:RadGridView Name="playersGrid" ItemsSource="{Binding Players}" AutoGenerateColumns="False" EnableRowVirtualization="False" EnableColumnVirtualization="False">
<controls:RadGridView.ChildTableDefinitions>
<controls:GridViewTableDefinition/>
</controls:RadGridView.ChildTableDefinitions>
<controls:RadGridView.Columns> <controls:GridViewDataColumn DataMemberBinding="{Binding Name}"> </controls:GridViewDataColumn> <controls:GridViewDataColumn DataMemberBinding="{Binding SelectedItem.Name}"> <controls:GridViewDataColumn.CellEditTemplate> <DataTemplate> <RadControls:RadComboBox ItemsSource="{Binding Hobbies, Mode=OneTime}" SelectedItem="{Binding SelectedItem,Mode=TwoWay}" SelectedValue="Name" DisplayMemberPath="Name" > </RadControls:RadComboBox> </DataTemplate> </controls:GridViewDataColumn.CellEditTemplate> </controls:GridViewDataColumn>
</controls:RadGridView.Columns>
<
telerik:RadGridView.HierarchyChildTemplate>
<HierarchicalDataTemplate>
<controls:RadGridView Name="Hobbies"
ItemsSource="{Binding Hobbies}"
AutoGenerateColumns="True" EnableRowVirtualization="False" EnableColumnVirtualization="False"/>
</controls:RadGridView>
</
HierarchicalDataTemplate>
</telerik:RadGridView.HierarchyChildTemplate>
</DataTemplate> </controls:RadGridView.HierarchyChildTemplate> </controls:RadGridView>
Grid mainGrid = (Grid)App.Current.MainWindow.Content;mainGrid.Children.Insert(mainGrid.Children.Count, this);var pane = new RadPane();var paneGroup = new RadPaneGroup();paneGroup.Items.Add(pane);var splitContainer = new RadSplitContainer();splitContainer.Items.Add(paneGroup);this.dockingControl.Items.Add(splitContainer);pane.MakeFloatingDockable();Public Class NovoBookMarkRangeStart Inherits FieldRangeStartBase Private m_Name As String Private m_TypeCase As Integer Private m_BookFormat As String <XamlSerializable()> _ Public Property BookFormat As String Get Return m_BookFormat End Get Set(value As String) m_BookFormat = value End Set End Property <XamlSerializable()> _ Public Property Name() As String Get Return m_Name End Get Set(value As String) m_Name = value End Set End Property <XamlSerializable()> _ Public Property TypeCase() As Integer Get Return m_TypeCase End Get Set(value As Integer) m_TypeCase = value End Set End Property Public Sub New() End Sub Public Sub New(name As String, TypeCase As Integer, Bookformat As String) Me.TypeCase = TypeCase Me.Name = name Me.BookFormat = Bookformat End SubPrivate Sub Wpf_NewBookMark(ID As Integer, TypeCase As Integer, BookFormat As String) Handles Wpf.NewBookMark Dim StartRange As New NovoBookMarkRangeStart(ID.ToString, TypeCase, BookFormat) Dim EndRange As New NovoBookMarkRangeEnd() 'Caret Position Dim S As New DocumentPosition(Me.editor.Document.CaretPosition) Dim E As New DocumentPosition(Me.editor.Document) EndRange.PairWithStart(StartRange) 'Custom Span Dim BookMarkSpan As New Span("{" & Id.ToString() & "}") S.AnchorToCurrentBoxIndex() editor.InsertInline(StartRange) editor.InsertInline(BookMarkSpan) editor.InsertInline(EndRange) S.RestorePositionFromBoxIndex() editor.UpdateEditorLayout() End Subusing System;using System.Linq;using System.ComponentModel;using System.ComponentModel.DataAnnotations;namespace VisorDataModel{ [MetadataTypeAttribute(typeof(ValidUser.ValidUserMetadata))] public partial class ValidUser : IEditableObject { internal sealed class ValidUserMetadata { public ValidUserMetadata() { } [Required(ErrorMessage = "User ID is required")] public int UserID { get; set; } [Required(ErrorMessage = "User Name is required.")] [StringLength(6,ErrorMessage="User name must be at least 6 characters")] public string UserName { get; set; } [Required(ErrorMessage = "Password is required.")] [StringLength(6, ErrorMessage = "Password must be at least 6 characters")] public string UserPassword { get; set; } [Required(ErrorMessage = "User Class is required.")] public int UserClass { get; set; } } }}using System;using System.Collections.Generic;using System.Linq;namespace VisorDataModel{ public interface IValidUsersModel { IEnumerable<ValidUser> LoadValidUsers(); IEnumerable<UserClass> LoadUserClasses(); ValidUser NewValidUser(); void AddValidUser(ValidUser validUser); void DeleteValidUser(ValidUser validUser); void SaveChanges(); }}using System;using System.Collections.Generic;using System.Linq;namespace VisorDataModel{ /// <summary> /// Represents a source of ValidUsers /// </summary> public class ValidUsersModel : IValidUsersModel { private EntitiesModel dbContext = new EntitiesModel(); public IEnumerable<ValidUser> LoadValidUsers() { return dbContext.ValidUsers.ToList(); } public IEnumerable<UserClass> LoadUserClasses() { return dbContext.UserClasses.ToList(); } public ValidUser NewValidUser() { ValidUser newValidUser = new ValidUser { UserName = "New User", UserPassword = "New Password", UserClass = 0 }; int newUserId = 0; try { newUserId = (from vu in dbContext.ValidUsers select (vu.UserID)).Max() +1; } catch { newUserId = 0; } newValidUser.UserID = newUserId; return newValidUser; } public void AddValidUser(ValidUser validUser) { dbContext.Add(validUser); dbContext.SaveChanges(); } public void DeleteValidUser(ValidUser validUser) { dbContext.Delete(validUser); dbContext.SaveChanges(); } public void SaveChanges() { dbContext.SaveChanges(); } }}using System;using System.Linq;using System.Collections.ObjectModel;using System.ComponentModel;namespace VisorDataModel{ public class ValidUsersViewModel : INotifyPropertyChanged { private readonly IValidUsersModel dataModel; private ValidUser _selectedValidUser; private DelegateCommand _addValidUserCommand; private DelegateCommand _deleteValidUserCommand; private DelegateCommand _saveChangesCommand; private ObservableCollection<ValidUser> _validUsers; private ObservableCollection<UserClass> _userClasses; public event PropertyChangedEventHandler PropertyChanged; private ObservableCollection<ValidUser> _originalValidUsers; #region initialisation public ValidUsersViewModel() { this.dataModel = new ValidUsersModel(); } #endregion public ObservableCollection<ValidUser> ValidUsers { get { if (this._validUsers == null) { this._validUsers = new ObservableCollection<ValidUser>(); if (this._originalValidUsers == null) { this._originalValidUsers = this._validUsers; } LoadValidUsers(); } return this._validUsers; } } public ObservableCollection<UserClass> UserClasses { get { if (this._userClasses == null) { this._userClasses = new ObservableCollection<UserClass>(); LoadUserClasses(); } return this._userClasses; } } #region SelectValidUser property public ValidUser SelectedValidUser { get { return _selectedValidUser; } set { if (this._selectedValidUser == value) return; this._selectedValidUser = value; this.OnPropertyChanged("SelectedValidUser"); } } #endregion public DelegateCommand AddValidUserCommand { get { if (this._addValidUserCommand == null) this._addValidUserCommand = new DelegateCommand(this.OnAddCommandExecute); return _addValidUserCommand; } } public DelegateCommand DeleteValidUserCommand { get { if (this._deleteValidUserCommand == null) this._deleteValidUserCommand = new DelegateCommand(this.OnDeleteCommandExecute); return _deleteValidUserCommand; } } public DelegateCommand SaveChangesCommand { get { if (this._saveChangesCommand == null) this._saveChangesCommand = new DelegateCommand(this.OnSaveCommandExecute); return _saveChangesCommand; } } private void LoadValidUsers() { this._validUsers.Clear(); foreach (var item in this.dataModel.LoadValidUsers()) { this._validUsers.Add(item); } } private void LoadUserClasses() { this._userClasses.Clear(); foreach (var item in this.dataModel.LoadUserClasses()) { this._userClasses.Add(item); } } private void OnAddCommandExecute(object parameter) { ValidUser newValidUser = this.dataModel.NewValidUser(); this.ValidUsers.Add(newValidUser); this.SelectedValidUser = newValidUser; this.dataModel.AddValidUser(newValidUser); } private void OnDeleteCommandExecute(object parameter) { if (this.SelectedValidUser != null) { this.dataModel.DeleteValidUser(this.SelectedValidUser); this.ValidUsers.Remove(this.SelectedValidUser); } } private void OnSaveCommandExecute(object parameter) { this.dataModel.SaveChanges(); } protected virtual void OnPropertyChanged(string info) { if (this.PropertyChanged != null) this.PropertyChanged(this, new PropertyChangedEventArgs(info)); } }}