<telerik:RadComboBox x:Name="maskedComboBox" ItemsSource="{Binding Path=ValuesViewModel.ExistingValues}" DisplayMemberPath="ValueName" SelectedValuePath="ValueId" SelectedValue="{Binding Path=ValuesViewModel.SelectedValue, UpdateSourceTrigger=PropertyChanged}" CanAutocompleteSelectItems="True" IsFilteringEnabled="True" TextSearchMode="StartsWith" OpenDropDownOnFocus="True" IsEditable="True" EditableTemplate="{DynamicResource MaskedComboBoxEditableTemplate}" />
OpenDropDownOnFocus, most likely because I need the <telerik:PickerTextBox x:Name="PART_EditableTextBox" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.Column="0"Visibility="Collapsed"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" IsReadOnly="{TemplateBinding IsReadOnly}" Padding="{TemplateBinding Padding}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" Text="{Binding ElementName=maskedTextBox, Path=Value, Mode=TwoWay}" > <telerik:StyleManager.Theme> <telerik:Office_BlackTheme/> </telerik:StyleManager.Theme></telerik:PickerTextBox><Controls:RadMaskedTextBox x:Name="maskedTextBox" Grid.Column="0" Mask="{Binding Path=SizeChartViewModel.SizeChartMask.Mask}" MaskType="Standard" SelectionOnFocus="CaretToBeginning" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" IsReadOnly="{TemplateBinding IsReadOnly}" Padding="{TemplateBinding Padding}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"> <telerik:StyleManager.Theme> <telerik:Office_BlackTheme/> </telerik:StyleManager.Theme></Controls:RadMaskedTextBox><telerik:RadGridView DockPanel.Dock="Top" Width="auto" SelectedItem="{Binding SelectedNews,Mode=TwoWay}" ItemsSource="{Binding NewsModelDTO.NewsItems}" Grid.Row="0" AutoGenerateColumns="False" CanUserDeleteRows="False" CanUserInsertRows="False" CanUserSelect="True" GridLinesVisibility="Horizontal" ShowInsertRow="False" ShowGroupFooters="False" ShowColumnHeaders="True" RowIndicatorVisibility="Collapsed"> <telerik:RadGridView.Columns> <telerik:GridViewDataColumn Header="Usuń" DataMemberBinding="{Binding NewsIsSelected}" IsReadOnly="True"> <telerik:GridViewDataColumn.CellTemplate> <DataTemplate> <CheckBox IsChecked="{Binding NewsIsSelected, Mode=TwoWay}"/> </DataTemplate> </telerik:GridViewDataColumn.CellTemplate> </telerik:GridViewDataColumn> <telerik:GridViewDataColumn IsReadOnly="True" MaxWidth="200" Header="Nazwa" DataMemberBinding="{Binding NewsTitle}" /> <telerik:GridViewDataColumn IsReadOnly="True" Width="0.4*" Header="Treść" DataMemberBinding="{Binding NewsText}" /> <telerik:GridViewDataColumn IsReadOnly="True" Width="120" Header="Uruchom" DataMemberBinding="{Binding NewsDateFrom}"/> <telerik:GridViewDataColumn IsReadOnly="True" Width="120" Header="Zakończ" DataMemberBinding="{Binding NewsDateTo}"/> <telerik:GridViewCheckBoxColumn IsReadOnly="True" Width="120" Header="Czy aktywny" DataMemberBinding="{Binding NewsIsactive}"/> </telerik:RadGridView.Columns> </telerik:RadGridView>public class UcCommunicatesViewModel : ViewModelBase { private NewsModelDTO newsModelDTO = new NewsModelDTO(); private NewsServiceClient newsService; private NewsItemModel selectedNews; private RelayCommand addNewsCommand; private RelayCommand editNewsCommand; private RelayCommand deleteNewsCommand; public RelayCommand AddNewsCommand { get { if (addNewsCommand == null) { addNewsCommand = new RelayCommand(param => this.AddNewNews(), param => this.CanAddNewNews()); } return addNewsCommand; } } public RelayCommand EditNewsCommand { get { if (editNewsCommand == null) { editNewsCommand = new RelayCommand(param => this.EditNews(), param => this.CanEditNews()); } return editNewsCommand; } } public RelayCommand DeleteNewsCommand { get { if (deleteNewsCommand == null) { deleteNewsCommand = new RelayCommand(param => this.DeleteNews(), param => this.CanDeleteNews()); } return deleteNewsCommand; } } public bool CanAddNewNews() { return true; } public bool CanEditNews() { if (SelectedNews == null) return false; else return true; } public bool CanDeleteNews() { foreach (NewsItemModel ni in newsModelDTO.NewsItems) { if (ni.NewsIsSelected) return true; } if (SelectedNews == null) return false; else return true; } public void AddNewNews() { AddNewsPopup popup = new AddNewsPopup(false,new NewsItemModel()); popup.ShowDialog(); if (popup.DialogResult == true) { FillDataGrid(); OnPropertyChanged("NewsModelDTO"); } else { } } public void EditNews() { AddNewsPopup popup = new AddNewsPopup(true,SelectedNews); popup.ShowDialog(); if (popup.DialogResult == true) { FillDataGrid(); OnPropertyChanged("NewsModelDTO"); } else { OnPropertyChanged("SelectedNews"); OnPropertyChanged("NewsModelDTO"); } } public void DeleteNews() { } public NewsServiceClient NewsService { get { return newsService; } set { newsService = value; } } public NewsModelDTO NewsModelDTO { get { return newsModelDTO; } set { newsModelDTO = value; OnPropertyChanged("NewsModelDTO"); } } public NewsItemModel SelectedNews { get { return selectedNews; } set { selectedNews = value; OnPropertyChanged("SelectedNews"); } } public UcCommunicatesViewModel() { EndpointAddress endpointAddress = new EndpointAddress("http://localhost:5737/Service/NewsService.svc"); newsService = new NewsServiceClient(new BasicHttpBinding(), endpointAddress); FillDataGrid(); } private void FillDataGrid() { NewsDTO newsDto = newsService.GetNews(); NewsModelDTO NewsModelDTOCpy = new NewsModelDTO(); foreach (NewsItem ni in newsDto.NewsItems) { NewsItemModel nim = new NewsItemModel ( ni.NewsId, ni.NewsTitle, ni.NewsText, ni.NewsDatefrom, ni.NewsDateto, ni.NewsIsactive ); NewsModelDTOCpy.NewsItems.Add(nim); } newsModelDTO = NewsModelDTOCpy; } }public class AddNewsPopupViewModel : ViewModelBase { private NewsItemModel newsItem; private RelayCommand saveNewsCommand; private RelayCommand closeCommand; private NewsServiceClient newsService; private bool isEditMode=false; public event Action RequestClose; public AddNewsPopupViewModel(bool isEditMode, NewsItemModel newsItem) { this.newsItem = newsItem; this.isEditMode = isEditMode; if (isEditMode) { ((IEditableObject)newsItem).BeginEdit(); } } public RelayCommand SaveNewsCommand { get { if (saveNewsCommand == null) { saveNewsCommand = new RelayCommand(param => this.SaveNews(), param => this.CanSaveNews()); } return saveNewsCommand; } } public RelayCommand CloseCommand { get { if (closeCommand == null) { closeCommand = new RelayCommand(param => Close(), param => CanClose()); } return closeCommand; } } public bool CanSaveNews() { if (newsItem.NewsText == string.Empty || newsItem.NewsTitle == string.Empty) { return false; } return true; } public NewsItemModel NewsItem { get { return newsItem; } set { newsItem = value; OnPropertyChanged("NewsItem"); } } public void SaveNews() { EndpointAddress endpointAddress = new EndpointAddress("http://localhost:5737/Service/NewsService.svc"); newsService = new NewsServiceClient(new BasicHttpBinding(), endpointAddress); if (isEditMode) { NewsItem itemToSave = ReWriteDataToServiceItem(newsItem); newsService.SaveEditedNews(itemToSave); ((IEditableObject)NewsItem).EndEdit(); Common.MessageBox.Show("Dane zostały zapisane", "Informacja", MessageBox.MesageBoxButtons.OK, MessageBox.MessageBoxImage.Information); DialogResult = true; this.Close(); } else { NewsItem itemToSave = ReWriteDataToServiceItem(newsItem); newsService.AddNews(itemToSave); Common.MessageBox.Show("Dane zostały zapisane", "Informacja", MessageBox.MesageBoxButtons.OK, MessageBox.MessageBoxImage.Information); DialogResult = true; this.Close(); } } public NewsItem ReWriteDataToServiceItem(NewsItemModel newsItemModel) { NewsItem newsItemService = new NewsItem(); newsItemService.NewsId = newsItemModel.NewsId; newsItemService.NewsText = newsItemModel.NewsText; newsItemService.NewsTitle = newsItemModel.NewsTitle; newsItemService.NewsDatefrom = newsItemModel.NewsDateFrom; newsItemService.NewsDateto = newsItemModel.NewsDateTo; newsItemService.NewsIsactive = newsItemModel.NewsIsActive; return newsItemService; } public virtual void Close() { if (isEditMode) { ((IEditableObject)NewsItem).CancelEdit(); } if (RequestClose != null) { RequestClose(); } } public virtual bool CanClose() { return true; } }<books Name="a" > <book Name="" Index="1" Media="1.mp3"> </book> <book Name="b" Index="2" Media="2.mp3"> </book></books><text> <mainText> text1 </mainText> <mainText> text2 </mainText> </text>IsFilteringAllowed="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.IsAdvancedUserInterfaceOn}"I using radGridView containing two columns, one is of a plain text type and the other one is of a Rich Text (RadRichTextBox).
In order to implement it, I’ve set the grid column’s CellTemplate property (as shown in the following code).
Inside the cell, the data is being shown correctly. But the cell is being drawn with large margins (which become more noticeable when the row is selected or is the current row).
(Screenshot - http://imageshack.us/photo/my-images/864/radgriditemcontainersty.gif/ )
When clicking on those margins the cell’s content disappears.
What do I need to do in order to eliminate the cell margin?
Code:
<Window x:Class="GridTesting.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:telerikProvider="clr-namespace:Telerik.Windows.Documents.FormatProviders.Html;assembly=Telerik.Windows.Documents.FormatProviders.Html"
Title="MainWindow" Height="350" Width="780" x:Name="GridTesting"
>
<Grid>
<telerik:RadGridView
CanUserReorderColumns="True" ReorderColumnsMode="ReorderColumns"
RowIndicatorVisibility="Visible" SelectionMode="Extended" ShowGroupPanel="False"
CanUserInsertRows="True" ShowInsertRow="False" CanUserDeleteRows="True" DragElementAction="None"
ItemsSource="{Binding ItemsSource, ElementName=GridTesting}" AutoGenerateColumns="False">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="Name" Width="2*" >
<telerik:GridViewDataColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<TextBox Text="{Binding Name, Mode=TwoWay}"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextWrapping="Wrap"
BorderThickness="0" Padding="0" Margin="0" MaxHeight="100"/>
</StackPanel>
</DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="Description" Width="5*">
<telerik:GridViewDataColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<telerik:RadRichTextBox x:Name="DescriptionRichTextBox" AcceptsTab="False" MaxHeight="100" BorderThickness="0" IsSpellCheckingEnabled="False" />
<telerikProvider:HtmlDataProvider RichTextBox="{Binding ElementName=DescriptionRichTextBox}" Html="{Binding Description, Mode=TwoWay}" />
</StackPanel>
</DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>
</telerik:GridViewDataColumn>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</Grid>
</Window>
(I also tried to change the ItemContainerStyle, but without success)
Hi Telerik,
I'm working with RadControls for WPF Q1 2011 and PRISM 4 - MVVM. I need to add a view into a floating window programmatically. The goal is when my main window displayed, a floating window (another view) will also be displayed. The MVVM module will pass the view into the floating window, hence I need to define a region within the window. Is it possible to achieve and how?
Thank you,
Agung