New Posts New Posts RSS Feed: WinRT, Cocktail and Click
  FAQ FAQ  Forum Search   Calendar   Register Register  Login Login

WinRT, Cocktail and Click

 Post Reply Post Reply
Author
zbig View Drop Down
Newbie
Newbie
Avatar

Joined: 13-Oct-2012
Posts: 28
Post Options Post Options   Quote zbig Quote  Post ReplyReply Direct Link To This Post Topic: WinRT, Cocktail and Click
    Posted: 01-Jun-2013 at 5:28am
Hi,

I'm testig very trivial example of WinRT app with Coctail (I'm testing client side at the moment).
Everything works fine but 'Click' buton.
MainPage.xaml and MainPageViewModel.cs are well binded - items of a simple list are shown OK on MainPage. But the buton with the x:Name attribute (x:Name="ClickMe") in MainPage.xaml and corresponding method name in MainPageViewModel.cs (public void ClickMe() {...}) doesn't work.
What I'm doing wrong?

Thanks in advance for any advice.


MainPage.xaml:

<Page x:Class="App1.MainPage"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:local="using:App1"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      xmlns:cocktail="using:Cocktail"
      mc:Ignorable="d">

    <ScrollContentPresenter>
        <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">

            <Grid.RowDefinitions>
               <RowDefinition Height="Auto" />
               <RowDefinition Height="1*" />
            </Grid.RowDefinitions>

            <Button x:Name="ClickMe"
                     Content="Click me !" />


            <ListBox Grid.Row="1"
                     ItemsSource="{Binding MyEntities}">
               <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Text="{Binding DocumentNumber}"
                                       Foreground="Red" />
                        </StackPanel>
                    </DataTemplate>
               </ListBox.ItemTemplate>
            </ListBox>

        </Grid>
    </ScrollContentPresenter>
</Page>



MainPageViewModel.cs:


using Caliburn.Micro;
using System.Collections.ObjectModel;
using System.Composition;

namespace App1
{
    [Export]
    public class MainPageViewModel : Screen
    {
        public MainPageViewModel()
        {
        }

        // This list is shown on the MainPage - binding is OK
        public ObservableCollection<MyEntity> MyEntities
        {
            get
            {
               var myEntities = new ObservableCollection<MyEntity>();
               myEntities.Add(new MyEntity{Id = 1, DocumentNumber="No 1"});
               myEntities.Add(new MyEntity{Id = 2, DocumentNumber="No 2"});
               myEntities.Add(new MyEntity{Id = 3, DocumentNumber="No 3"});
               return myEntities;
            }
        }

        public void ClickMe()
        {
            // this method is not executed after clicking a button...        }

    }

}


Back to Top
zbig View Drop Down
Newbie
Newbie
Avatar

Joined: 13-Oct-2012
Posts: 28
Post Options Post Options   Quote zbig Quote  Post ReplyReply Direct Link To This Post Posted: 03-Jun-2013 at 1:01pm
Finally solved!

When the main cointainer of a Page is 'ScrollContentPresenter', 'ClickMe' method is not executed. After replacing <ScrollContentPresenter> tags by <Grid> tags, everything works fine.
Back to Top
 Post Reply Post Reply

Forum Jump Forum Permissions View Drop Down