<
DataTemplate
x:Key
=
"RegionFilterEditorTemplate"
>
<
telerik:RadComboBox
SelectedValue
=
"{Binding Path=NAME, Mode=TwoWay, FallbackValue=null}"
DisplayMemberPath
=
"NAME"
SelectedValuePath
=
"NAME"
MinWidth
=
"100"
SelectionChanged
=
"RegionSelected"
/>
</
DataTemplate
>
<
DataTemplate
x:Key
=
"MUNFilterEditorTemplate"
>
<
telerik:RadComboBox
SelectedValue
=
"{Binding Path=NAME, Mode=TwoWay, FallbackValue=null}"
DisplayMemberPath
=
"NAME"
SelectedValuePath
=
"NAME"
MinWidth
=
"100"
SelectionChanged
=
"MunicipalitySelected"
/>
</
DataTemplate
>
<
local:MyEditorTemplateSelector
x:Key
=
"MyEditorTemplateSelector"
>
<
local:MyEditorTemplateSelector.EditorTemplateRules
>
<
local:EditorTemplateRule
PropertyName
=
"N_MUN.N_REGION.NAME"
DataTemplate
=
"{StaticResource RegionFilterEditorTemplate}"
/>
<
local:EditorTemplateRule
PropertyName
=
"N_MUN.NAME"
DataTemplate
=
"{StaticResource MUNFilterEditorTemplate}"
/>
</
local:MyEditorTemplateSelector.EditorTemplateRules
>
</
local:MyEditorTemplateSelector
>
<
telerik:RadDataFilter
Name
=
"CitiesFilter"
Source
=
"{Binding}"
Loaded
=
"CitiesFilter_Loaded"
AutoGenerateItemPropertyDefinitions
=
"False"
CanUserCreateCompositeFilters
=
"False"
EditorCreated
=
"OnRadDataFilterEditorCreated"
EditorTemplateSelector
=
"{StaticResource MyEditorTemplateSelector}"
>
<
telerik:RadDataFilter.ItemPropertyDefinitions
>
<
datafilter:ItemPropertyDefinition
PropertyName
=
"N_MUN.N_REGION.NAME"
PropertyType
=
"{Binding String, Source={StaticResource Types}}"
DisplayName
=
"Област"
/>
<
datafilter:ItemPropertyDefinition
PropertyName
=
"N_MUN.NAME"
PropertyType
=
"{Binding String, Source={StaticResource Types}}"
DisplayName
=
"Община"
/>
<
datafilter:ItemPropertyDefinition
PropertyName
=
"NAME"
PropertyType
=
"{Binding String, Source={StaticResource Types}}"
DisplayName
=
"Населено място"
/>
</
telerik:RadDataFilter.ItemPropertyDefinitions
>
</
telerik:RadDataFilter
>
<
telerik:RadGridView
x:Name
=
"CitiesGrid"
ItemsSource
=
"{Binding FilteredSource, ElementName=CitiesFilter}"
AutoGenerateColumns
=
"False"
IsReadOnly
=
"True"
ScrollMode
=
"RealTime"
CanUserReorderColumns
=
"False"
GridLinesVisibility
=
"Both"
IsFilteringAllowed
=
"False"
ShowGroupPanel
=
"False"
ColumnWidth
=
"Auto"
>
<
telerik:RadGridView.Columns
>
<telerik:GridViewDataColumn
Header
=
"{x:Static res:CitiesDialogFormRes.REGION}"
DataMemberBinding
=
"{Binding Path=N_MUN.N_REGION.NAME}"
Width
=
"Auto"
/>
<
telerik:GridViewDataColumn
Header
=
"{x:Static res:CitiesDialogFormRes.MUN}"
DataMemberBinding
=
"{Binding Path=N_MUN.NAME}"
Width
=
"Auto"
/>
<
telerik:GridViewDataColumn
Header
=
"{x:Static res:CitiesDialogFormRes.CITY}"
DataMemberBinding
=
"{Binding Path=NAME}"
Width
=
"Auto"
/>
</
telerik:RadGridView.Columns
>
</
telerik:RadGridView
>
private
void
OnRadDataFilterEditorCreated(
object
sender,Telerik.Windows.Controls.Data.DataFilter.EditorCreatedEventArgs e)
{
switch
(e.ItemPropertyDefinition.PropertyName)
{
case
"N_MUN.N_REGION.NAME"
:
regionComboBox = (RadComboBox)e.Editor;
regionComboBox.ItemsSource = db.N_REGION.OrderBy(N_REGION => N_REGION.NAME);
break
;
case
"N_MUN.NAME"
:
munComboBox = (RadComboBox)e.Editor;
break
;
}
}
private
void
CitiesFilter_Loaded(
object
sender, RoutedEventArgs e)
{
FilterDescriptor regionsFilterDesc =
new
FilterDescriptor(
"N_MUN.N_REGION.NAME"
, FilterOperator.IsEqualTo,
""
,
true
);
FilterDescriptor munsFilterDesc =
new
FilterDescriptor(
"N_MUN.NAME"
, FilterOperator.IsEqualTo,
""
,
true
);
this
.CitiesFilter.FilterDescriptors.Add(regionsFilterDesc);
this
.CitiesFilter.FilterDescriptors.Add(munsFilterDesc);
}
private
void
RegionSelected(
object
sender, SelectionChangedEventArgs e)
{
regionComboBox = (RadComboBox)e.OriginalSource;
var selectedRegion = regionComboBox.SelectedValue;
munComboBox.ItemsSource = db.N_MUN.Where(N_MUN => N_MUN.N_REGION.NAME.Equals(selectedRegion)).OrderBy(N_MUN => N_MUN.NAME);
}
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ArtikelNr}"
Header
=
"{DynamicResource ArtikelNr}"
IsReadOnly
=
"True"
/>
public
class
ResourceManager
{
public
static
void
SetResources(Collection<ResourceDictionary> collection, CultureInfo culture)
{
RemoveOld(collection);
try
{
Uri resource =
new
Uri(
"Resources/Strings_"
+ culture.Name +
".xaml"
, System.UriKind.Relative);
collection.Add(
new
ResourceDictionary { Source = resource });
}
catch
{
// TODO: Handle this, is it possible to be here?
}
}
private
static
void
RemoveOld(Collection<ResourceDictionary> collection)
{
for
(
int
i = 0; i < collection.Count; ++i)
{
if
(collection[i].Source.ToString().Contains(
"Strings_"
))
{
collection.RemoveAt(i);
--i;
}
}
}
public
static
List<CultureInfo> SupportedCultures
{
get
{
return
new
List<CultureInfo>()
{
new
CultureInfo(
"de-DE"
),
// DEU
new
CultureInfo(
"ru-RU"
),
// ENU
};
}
}
}
public
void
SetCulture(CultureInfo culture)
{
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
ResourceManager.SetResources(Resources.MergedDictionaries, culture);
}
StreamResourceInfo
, but its throw an exception error like "The invocation of the constructor on type ,that matches the specified binding constraints trew an exception " so i don't know how to handle this, could any one help to get out of this issue.
private void SearchList(string searchValue)
{
ControlTemplate tt = (ControlTemplate)baseFrameworkElement.FindResource("NavigationContentTemplate");
ContentControl tc = (ContentControl)baseFrameworkElement.FindName("NavigationContent");
_treeView = tt.FindName("NavigationList", tc) as RadTreeView;
//_treeView.ExpandAll();
//_treeView.CollapseAll();
SearchTree(searchValue.ToLower(), _treeView);
}
private void SearchTree(string searchValue, ItemsControl item)
{
for (int i = 0; i < item.Items.Count; i++)
//foreach (var _dataItem in item.Items)
{
//RadTreeViewItem _childItem = treeView.ContainerFromItemRecursive(_dataItem);
RadTreeViewItem _childItem = item.ItemContainerGenerator.ContainerFromIndex(i) as RadTreeViewItem;
if (_childItem != null)
{
//MessageBox.Show(_childItem.ToString());
if (_childItem.Item is Association)
{
Association _childObject = _childItem.Item as Association;
if (_childObject.AssociationName.ToLower().Contains(searchValue))
{
if (_childItem.ItemContainerGenerator.Status == System.Windows.Controls.Primitives.GeneratorStatus.ContainersGenerated)
{
_childItem.IsExpanded = true;
_childItem.BringIntoView();
}
}
}
else if (_childItem.Item is Economist)
{
Economist _childObject = _childItem.Item as Economist;
if (_childObject.EconomistName.ToLower().Contains(searchValue))
{
if (_childItem.ItemContainerGenerator.Status == System.Windows.Controls.Primitives.GeneratorStatus.ContainersGenerated)
{
_childItem.IsExpanded = true;
_childItem.BringIntoView();
}
}
}
else if (_childItem.Item is Farm)
{
Farm _childObject = _childItem.Item as Farm;
if (_childObject.FarmName.ToLower().Contains(searchValue) || _childObject.FarmNbr.Contains(searchValue))
{
if (_childItem.ItemContainerGenerator.Status == System.Windows.Controls.Primitives.GeneratorStatus.ContainersGenerated)
{
_childItem.IsExpanded = true;
//_childItem.IsSelected = true;
_childItem.BringIntoView();
}
}
}
SearchTree(searchValue, _childItem);
}
}
}