This question is locked. New answers and comments are not allowed.
Hi,
First of all I'm pretty new to xaml and wp8 app development.
How can I use HubTile's command binding feature in RadDataBoundListBox?
I know there's something to do with DataTemplate is not part of VisualTree so the command is not invoked, I have tried several ways but no luck.. hope you can help.
I can see the code will call the command if the HubTile if it is not part of the DataBoundListBox
What am i missing?
Code snippet is provided below..
a.xaml.cs code...
The base ViewModel
Please help...
Shah
First of all I'm pretty new to xaml and wp8 app development.
How can I use HubTile's command binding feature in RadDataBoundListBox?
I know there's something to do with DataTemplate is not part of VisualTree so the command is not invoked, I have tried several ways but no luck.. hope you can help.
I can see the code will call the command if the HubTile if it is not part of the DataBoundListBox
What am i missing?
Code snippet is provided below..
<phone:PhoneApplicationPage x:Class="MyFinanceWinPhone.LightToolkit.Client.Views.a" xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" xmlns:telerikPrimitives="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Primitives" xmlns:MyCommand="clr-namespace:MyFinanceWinPhone.LightToolkit.Client.Views" xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.WP8" xmlns:System="clr-namespace:System;assembly=mscorlib" FontFamily="{StaticResource PhoneFontFamilyNormal}" FontSize="{StaticResource PhoneFontSizeNormal}" Foreground="{StaticResource PhoneForegroundBrush}" SupportedOrientations="Portrait" Orientation="Portrait" mc:Ignorable="d" shell:SystemTray.IsVisible="True" x:Name="myPage"> <!--LayoutRoot is the root grid where all page content is placed--> <Grid x:Name="LayoutRoot" Background="Transparent"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <!--TitlePanel contains the name of the application and page title--> <StackPanel Grid.Row="0" Margin="12,17,0,28"> <TextBlock Text="MY APPLICATION" Style="{StaticResource PhoneTextNormalStyle}"/> <TextBlock Text="page name" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/> </StackPanel> <!--ContentPanel - place additional content here--> <StackPanel x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <!--<telerikPrimitives:RadHubTile CommandParameter="The Parameter"> <telerikPrimitives:RadHubTile.Command> <MyCommand:ACommand /> </telerikPrimitives:RadHubTile.Command> </telerikPrimitives:RadHubTile> <telerikPrimitives:RadHubTile CommandParameter="The Parameter2"> <telerikPrimitives:RadHubTile.Command>d <MyCommand:ACommand /> </telerikPrimitives:RadHubTile.Command> </telerikPrimitives:RadHubTile>--> <telerikPrimitives:RadHubTile Command="{Binding HelloCommand}" CommandParameter="The Parameter3" /> <telerikPrimitives:RadDataBoundListBox x:Name="radListBox" ItemsSource="{Binding Items}" Margin="6,0,6,0" Grid.Row="3"> <telerikPrimitives:RadDataBoundListBox.ItemTemplate> <DataTemplate> <telerikPrimitives:RadHubTile DataContext="{Binding DataContext,ElementName=LayoutRoot}" Height="100" Width="150" FontSize="20" Title="{Binding Title}" Command="{Binding HelloCommand}" CommandParameter="Inside datatemplate"/> </DataTemplate> </telerikPrimitives:RadDataBoundListBox.ItemTemplate> <telerikPrimitives:RadDataBoundListBox.VirtualizationStrategyDefinition> <telerikPrimitives:WrapVirtualizationStrategyDefinition Orientation="Horizontal" WrapLineAlignment="Center"/> </telerikPrimitives:RadDataBoundListBox.VirtualizationStrategyDefinition> </telerikPrimitives:RadDataBoundListBox> </StackPanel> </Grid></phone:PhoneApplicationPage>a.xaml.cs code...
using System.Collections.ObjectModel;using System.Windows;using System.Windows.Input;using Microsoft.Phone.Controls;using MyFinance.WindowsPhone.Core.UI;using MyFinance.WindowsPhone.Core.UI.Commands;namespace MyFinanceWinPhone.LightToolkit.Client.Views{ public partial class a : PhoneApplicationPage { public a() { InitializeComponent(); LayoutRoot.DataContext = new aViewModel(); } } public class aViewModel : GalaSoftViewModel { public aViewModel() { HelloCommand = new DelegateCommand(AAA, o => true); Items = new ObservableCollection<AnItem> { new AnItem { Title = "Hello World" }, new AnItem { Title = "Hello World 2" }, new AnItem { Title = "goheadgostan" } }; } private void AAA(object parameter) { MessageBox.Show("Hello Command via aViewModel"); } private ObservableCollection<AnItem> _items; public ObservableCollection<AnItem> Items { get { return _items; } set { Set("Items", ref _items, value); } } public ICommand HelloCommand { get; set; } } public class AnItem : GalaSoftViewModel { private string _title; public string Title { get { return _title; } set { Set("Title", ref _title, value); } } }}The base ViewModel
using GalaSoft.MvvmLight;namespace MyFinance.WindowsPhone.Core.UI{ public class GalaSoftViewModel : ViewModelBase { public GalaSoftViewModel() { BroadCast = false; } private string _applicationTitle = "No Application Title"; public virtual string ApplicationTitle { get { return _applicationTitle; } set { _applicationTitle = value; RaisePropertyChanged("ApplicationTitle"); } } private string _pageTitle = "No page title"; public virtual string PageTitle { get { return _pageTitle; } set { _pageTitle = value; RaisePropertyChanged("PageTitle"); } } public bool BroadCast { get; set; } }}Please help...
Shah