I'm looking for time to deep into F#. It Seems that Xamarin.iOS/Android
could have full support soon, just in time :D



2013/3/5 Nic Wise <[email protected]>

> (I ment _I_ need to learn F#)
>
> On 5 March 2013 22:35, Nic Wise <[email protected]> wrote:
> > Thanks. Instapapered.
> >
> > Need to learn F#, too :)
> >
> > On 5 March 2013 21:54, Juan M Gómez <[email protected]> wrote:
> >> Yes, it's clousure stuff. If you want you can see why that happens here:
> >> http://www.defmacro.org/ramblings/fp.html#part_11 although I recommend
> the
> >> whole article for everybody, it's pretty nice.
> >>
> >>
> >>
> >>
> >> 2013/3/5 Nic Wise <[email protected]>
> >>>
> >>> Hi Iki
> >>>
> >>> for (int i = 0; i < newsList.Count; i++)
> >>>          {
> >>>             StringElement se = new StringElement(newsList[i]);
> >>>             section.Add(se);
> >>>
> >>>             int localCounter = i; //grab it, 'cos you want to use it
> >>> inside the lamda, and "i" may have the wrong scope
> >>>             se.Tapped += () =>
> >>>             {
> >>>                //DialogViewController with modified ctor (string name)
> >>>                  DetailViewController dvc = new
> >>> DetailViewController(newsList[localCounter]); //use the local one
> >>>
>  this.NavigationController.PushViewController(dvc,true);
> >>>              };
> >>>
> >>>              stringElementsList.Add(se); //you dont need this, you are
> >>> storing it in the section above!
> >>>           }
> >>>
> >>> you might not need the localCounter bit (you might just be able to use
> >>> i) - try it out. If it always shows the last element, regardless, then
> >>> use the localCounter bit. I know you need to do this for objects, just
> >>> not 100% sure on value types :)
> >>>
> >>> you could rewrite it like this, too:
> >>>
> >>>
> >>>
> >>> newsList = new List<string>()
> >>>         {
> >>>             "News - 1"
> >>>            ,"News - 2"
> >>>            ,"News - 3"
> >>>            ,"News - 4"
> >>>          };
> >>>
> >>> foreach(var s in newsList)
> >>> {
> >>>
> >>> string temp = s; //capture outside, use inside the lambda/delegate
> >>>
> >>> section.Add(new StringElement(s, () => {
> >>>   DetailViewController dvc = new DetailViewController(temp);
> >>>    this.NavigationController.PushViewController(dvc,true);
> >>> });
> >>>
> >>>
> >>> }
> >>>
> >>>
> >>>
> >>>
> >>> On 5 March 2013 20:37, Iki <[email protected]> wrote:
> >>> > Hey Juan,
> >>> >
> >>> > Thanks for such quick response, as a matter of fact, my approach was
> >>> > exactly
> >>> > like Your second solution.
> >>> > But along the way I have made a mistake while assigning a new
> >>> > DialogViewController, here is the example of working solution:
> >>> >
> >>> > public partial class MainViewController : DialogViewController
> >>> > {
> >>> >     List<string> newsList;
> >>> >     List<StringElement> stringElementsList;
> >>> >
> >>> >     public MainViewController () : base (UITableViewStyle.Grouped,
> null)
> >>> >     {
> >>> >
> >>> >        Root = new RootElement ("Main View") {};
> >>> >        Section section = new Section ("");
> >>> >
> >>> >
> >>> >         newsList = new List<string>()
> >>> >         {
> >>> >             "News - 1"
> >>> >            ,"News - 2"
> >>> >            ,"News - 3"
> >>> >            ,"News - 4"
> >>> >          };
> >>> >
> >>> >          stringElementsList = new List<StringElement> (){};
> >>> >
> >>> >          for (int i = 0; i < newsList.Count; i++)
> >>> >          {
> >>> >             StringElement se = new StringElement(newsList[i]);
> >>> >             section.Add(se);
> >>> >
> >>> >             se.Tapped += () =>
> >>> >             {
> >>> >                //DialogViewController with modified ctor (string
> name)
> >>> >                  DetailViewController dvc = new
> >>> > DetailViewController(newsList[se.IndexPath.Row]);
> >>> >
>  this.NavigationController.PushViewController(dvc,true);
> >>> >              };
> >>> >
> >>> >              stringElementsList.Add(se);
> >>> >           }
> >>> >
> >>> >           Root.Add (section);
> >>> >
> >>> >
> >>> >      }
> >>> > }
> >>> >
> >>> >
> >>> >
> >>> > On Mar 5, 2013, at 8:11 PM, Juan M Gómez <[email protected]>
> wrote:
> >>> >
> >>> > Hi Iki,
> >>> > There are a few ways to go on:
> >>> > ->Just a specialized class of StringElement that exposes your
> properties
> >>> > or
> >>> > a new event.
> >>> > ->If you assign the data in the same struct, just use it (if it is a
> >>> > loop,
> >>> > remember to set a new assign in the block of lambda)
> >>> >
> >>> > cheers
> >>> >
> >>> >
> >>> > Juan M Gómez
> >>> >
> >>> >
> >>> > 2013/3/5 Iki <[email protected]>
> >>> >>
> >>> >> Hi guys/gals,
> >>> >>
> >>> >> I'm having trouble accessing MonoTouch Dialog elements.
> >>> >>
> >>> >> Example is:
> >>> >>
> >>> >> I have a list of items from which i create StringElements in
> section.
> >>> >> After elements is tapped, i would like to go to a new view, on
> which i
> >>> >> would, based on the element tapped filled out the data.
> >>> >>
> >>> >> StringElement.Tapped is without parameters,
> >>> >>
> >>> >> se.Tapped += () =>
> >>> >>                 {
> >>> >>
> >>> >>
> >>> >>                 };
> >>> >>
> >>> >>  and i can't find a proper way to send reference of the object that
> is
> >>> >> tapped.
> >>> >>
> >>> >> I'm currently using DialogViewControllers, for my main view, on
> which i
> >>> >> create list of name, and on my detail view which i need to fill up
> with
> >>> >> data
> >>> >> based on element from the main view.
> >>> >>
> >>> >> I did try with this
> >>> >>
> >>> >> public void RowSelected (UITableView tableView, NSIndexPath
> indexPath)
> >>> >> {
> >>> >>     DetailViewController dvc = new DetailViewController (names
> >>> >> [indexPath.Row]);
> >>> >>     this.NavigationController.PushViewController (dvc, true);
> >>> >> }
> >>> >>
> >>> >> But I don't see any effect.
> >>> >>
> >>> >> Thanks!
> >>> >>
> >>> >>
> >>> >>
> >>> >> _______________________________________________
> >>> >> MonoTouch mailing list
> >>> >> [email protected]
> >>> >> http://lists.ximian.com/mailman/listinfo/monotouch
> >>> >>
> >>> >
> >>> > _______________________________________________
> >>> > MonoTouch mailing list
> >>> > [email protected]
> >>> > http://lists.ximian.com/mailman/listinfo/monotouch
> >>> >
> >>> >
> >>> >
> >>> > _______________________________________________
> >>> > MonoTouch mailing list
> >>> > [email protected]
> >>> > http://lists.ximian.com/mailman/listinfo/monotouch
> >>> >
> >>>
> >>>
> >>>
> >>> --
> >>> Nic Wise
> >>> t.  +44 7788 592 806 | @fastchicken
> >>> b. http://www.fastchicken.co.nz/
> >>
> >>
> >>
> >> _______________________________________________
> >> MonoTouch mailing list
> >> [email protected]
> >> http://lists.ximian.com/mailman/listinfo/monotouch
> >>
> >
> >
> >
> > --
> > Nic Wise
> > t.  +44 7788 592 806 | @fastchicken
> > b. http://www.fastchicken.co.nz/
>
>
>
> --
> Nic Wise
> t.  +44 7788 592 806 | @fastchicken
> b. http://www.fastchicken.co.nz/
>
_______________________________________________
MonoTouch mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/monotouch

Reply via email to