or
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}}}" /><telerik:RadMaskedCurrencyInput Value="12345" Placeholder=" " IsCurrencySymbolVisible="False">public class CustomFilteringBehavior : FilteringBehavior { public override System.Collections.Generic.IEnumerable<object> FindMatchingItems(string searchText, System.Collections.IList items, System.Collections.Generic.IEnumerable<object> escapedItems, string textSearchPath, TextSearchMode textSearchMode) { var searchTextToUpper = searchText.ToUpper(); var matchingItems = items.OfType<Person>(). Where(x => x.FirstName.ToUpper().Contains(searchTextToUpper) || x.LastName.ToUpper().Contains(searchTextToUpper) || (x.FirstName + " " + x.LastName).ToUpper().Contains(searchTextToUpper)); return matchingItems.Where(x => !escapedItems.Contains(x)); } }<UserControl.Resources> <local:ViewModel x:Key="ViewModel" /> <local:CustomFilteringBehavior x:Key="CustomFilteringBehavior" /> <DataTemplate x:Key="CustomItemTemplate"> <StackPanel Orientation="Horizontal"> <TextBlock Text="{Binding FirstName}" /> <TextBlock Text=" " /> <TextBlock Text="{Binding LastName}" /> </StackPanel> </DataTemplate> </UserControl.Resources> <Grid x:Name="LayoutRoot" Background="White" DataContext="{StaticResource ViewModel}"> <StackPanel> <telerik:RadAutoCompleteBox ItemsSource="{Binding People}" FilteringBehavior="{StaticResource CustomFilteringBehavior}" DropDownItemTemplate="{StaticResource CustomItemTemplate}" BoxesItemTemplate="{StaticResource CustomItemTemplate}" SelectionMode="Single" AutoCompleteMode="Suggest" /> </StackPanel> </Grid><tel:RadListBox ItemsSource="{Binding Path=DtedDirectories}" SelectedValue="{Binding Path=SelectedDtedDirectory}" SelectionMode="Single"> <tel:RadListBox.ItemContainerStyle> <Style TargetType="tel:RadListBoxItem"> <Setter Property="tel:DragDropManager.AllowCapturedDrag" Value="True" /> </Style> </tel:RadListBox.ItemContainerStyle> <tel:RadListBox.DragDropBehavior> <tel:ListBoxDragDropBehavior AllowReorder="True" /> </tel:RadListBox.DragDropBehavior></tel:RadListBox>