I would like to access to my staticData using a usercontrol in c#. But in order to do that i think i need to define resources in C# instead of xaml.
Can anyone help me?
Everything in project is working but when i'm trying to access to my table it doesn't return anything because is just defined in xaml.
UserControl: GroupingZoomedInView.xaml
<UserControl
x:Class="CaiMU_Professor.Grouping.GroupingZoomedInView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:CaiMU_Professor.Grouping.Data"
xmlns:telerikGrid="using:Telerik.UI.Xaml.Controls.Grid"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300"
d:DesignWidth="400">
<Grid>
<Grid.Resources>
<local:PeopleViewModel x:Key="Model"/>
</Grid.Resources>
<telerikGrid:RadDataGrid x:Name="dataGrid" ItemsSource="{Binding Data,Source={StaticResource Model}}" AutoGenerateColumns="False" FontSize="{StaticResource ControlContentThemeFontSize}" SelectionUnit="Row">
<telerikGrid:RadDataGrid.GroupDescriptors>
<telerikGrid:DelegateGroupDescriptor>
<telerikGrid:DelegateGroupDescriptor.KeyLookup>
<local:AlpabeticGroupKeyLookup/>
</telerikGrid:DelegateGroupDescriptor.KeyLookup>
</telerikGrid:DelegateGroupDescriptor>
</telerikGrid:RadDataGrid.GroupDescriptors>
<telerikGrid:RadDataGrid.Columns>
<telerikGrid:DataGridTextColumn PropertyName="Template"/>
<telerikGrid:DataGridTextColumn PropertyName="data"/>
<telerikGrid:DataGridTextColumn PropertyName="info"/>
<telerikGrid:DataGridTextColumn PropertyName="score"/>
<telerikGrid:DataGridTextColumn PropertyName="result"/>
<telerikGrid:DataGridTextColumn PropertyName="repeats"/>
</telerikGrid:RadDataGrid.Columns>
</telerikGrid:RadDataGrid>
</Grid>
</UserControl>
GroupingZoomedInView.xaml.cs
public sealed partial class GroupingZoomedInView : UserControl, ISemanticZoomInformation
{
public String row;
public GroupingZoomedInView()
{
this.InitializeComponent();
this.dataGrid.SelectionChanged += this.SelectionChanged;
}
public void CompleteViewChangeFrom(SemanticZoomLocation source, SemanticZoomLocation destination)
{
var list = this.SemanticZoomOwner.ZoomedOutView as GridView;
if (list != null)
{
list.ItemsSource = source.Item;
}
}
public bool IsActiveView {get; set;}
public bool IsZoomedInView {get; set;}
public SemanticZoom SemanticZoomOwner{get; set;}
public void StartViewChangeFrom(SemanticZoomLocation source, SemanticZoomLocation destination)
{
source.Item = this.dataGrid.GetDataView().Items.OfType<IDataGroup>().Select(c => c.Key);
}
public void StartViewChangeTo(SemanticZoomLocation source, SemanticZoomLocation destination)
{
var dataview = this.dataGrid.GetDataView();
var group = dataview.Items.OfType<IDataGroup>().Where(c => c.Key.Equals(source.Item)).FirstOrDefault();
var lastGroup = dataview.Items.Last() as IDataGroup;
if (group != null && lastGroup != null)
{
this.dataGrid.ScrollItemIntoView(lastGroup.ChildItems[lastGroup.ChildItems.Count - 1], () =>
{
this.dataGrid.ScrollItemIntoView(group.ChildItems[0]);
});
}
}
private void SelectionChanged(object sender, DataGridSelectionChangedEventArgs e)
{
Templates temp = this.dataGrid.SelectedItem as Templates;
aux = this.dataGrid.SelectedItem;
}
}
My Static data
public class PeopleViewModel
{
private static List<Templates> staticData;
static PeopleViewModel()
{
Load();
}
public IList<Templates> Data
{
get
{
return staticData;
}
}
private static void Load()
{
XMLStuff xml = new XMLStuff();
List<Templates> tempList = xml.getControlOutput();
staticData = new List<Templates>();
foreach (Templates temp in tempList)
staticData.Add(temp);
}
}
try
var model = this.Resources["Model] as PeopleViewModel;