<MenuItem Header="Copy" InputGestureText="Ctrl+C" Command="ApplicationCommands.Copy" CommandTarget="{Binding ElementName=vpRadGridView}"/>
GridColumns
1.
<telerik:GridViewDataColumn
Header="Verification Path Pair"
UniqueName="VerificationPathPair"
DataMemberBinding="{Binding Path=., Converter={StaticResource VPPair}}"
/>
2.
<
telerik:GridViewDataColumn
Header="Verification Path ID"
UniqueName="VerificationPathID"
DataMemberBinding="{Binding Name, ValidatesOnExceptions=True, Mode=OneWay, ValidatesOnDataErrors=True}"
/>
Copy Results:
MySolution.OrmNhib.BusinessObjects.OnepValidochpath | VP1 |
repairBoardScheduleView.GroupHeaderContentTemplateSelector = Application.Current.FindResource(
"GroupHeaderContentTemplateSelector"
)
as
OrientedGroupHeaderContentTemplateSelector;
repairBoardScheduleView.GroupHeaderContentTemplateSelector = Application.Current.FindResource(
"GroupHeaderContentTemplateSelector"
)
as
ScheduleViewDataTemplateSelector;
<
telerik:RadScheduleView
x:Name="scheduleView"
AppointmentsSource="{Binding ImmovilizationModel.ImmovilizationAppointments}"
GroupDescriptionsSource="{Binding ImmovilizationModel.GroupDescriptions}">
<telerik:RadScheduleView.ViewDefinitions>
<telerik:TimelineViewDefinition>
<telerik:TimelineViewDefinition.MajorTickLength>
<telerik:FixedTickLengthProvider />
</telerik:TimelineViewDefinition.MajorTickLength>
<telerik:TimelineViewDefinition.MinorTickLength>
<telerik:FixedTickLengthProvider />
</telerik:TimelineViewDefinition.MinorTickLength>
</telerik:TimelineViewDefinition>
</telerik:RadScheduleView.ViewDefinitions>
</telerik:RadScheduleView>
<
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
;
}
}