Sometimes I am tempted to write code like that, but I'm afraid some MVVM
purist or some pedantic bastard will give me a purist talk.


On Tue, Nov 9, 2010 at 2:33 PM, Miguel Madero <[email protected]> wrote:

> >From codebehind yes.
>
> Let's assume you have a button in your listBox's datatemplate.
>
> public OnDeleteButtonClick(o...e..){
>    var orderToDelete = ((Button)o).DataContext;
>    var viewModel = (MyViewModel)DataContext;
>    viewModel.DeleteOrder(orderToDelete);
> }
>
> I tend to have a property that gives me the ViewModel just to remove the
> cast from my code.
>
>
> On Tue, Nov 9, 2010 at 8:47 AM, Winston Pang <[email protected]>wrote:
>
>> Oh right, as in, casting DataContext to the respective VM and invoking it
>> with respective params?
>>
>>
>> On Tue, Nov 9, 2010 at 9:42 AM, Miguel Madero <[email protected]>wrote:
>>
>>> I rarely have to pass parameters. The CallMethodAction doesn't have this
>>> option. I prefer parameterless methods and databind to properties to give my
>>> VMs the extra context. In cases where this isn't possible I do it from code
>>> behind. I guess it would be really simple to write a CallMethodAction that
>>> takes a parameter or parameter list if you need this functionality. Since
>>> this isn't a common task for me, it has been simpler to write an event
>>> handler and directly call the method.
>>>
>>>
>>>
>>>
>>> On Mon, Nov 8, 2010 at 7:45 PM, Winston Pang <[email protected]>wrote:
>>>
>>>> Nice, that's interesting, never seen that one, I hate having to declare
>>>> ICommand's it's such a hassle just to wire something up.
>>>>
>>>> How do you pass args/params with CallMethodAction
>>>>
>>>>
>>>> On Sun, Nov 7, 2010 at 8:34 PM, Miguel Madero <[email protected]>wrote:
>>>>
>>>>> BTW I love the CallMethodAction in Blend so I don't have to define
>>>>> Command in my ViewModels. It feels more POCOish. Just a public method. If 
>>>>> I
>>>>> need the IsEnabled I just add a property and bind it to either IsEnabled 
>>>>> or
>>>>> Visibility.
>>>>> <rant>
>>>>> Commands are just too messy and feels like leaking view concerns into
>>>>> my VMs. Just for the same reason I don't expose properties of type
>>>>> Visibility, I don't like exposing ICommand.
>>>>> Setting purity aside, it's just too much work, create another property
>>>>> that delegates on your method, initialise it in the constructor, then find
>>>>> ways to actually be able to call that from code... naaa. That's just
>>>>> messy.
>>>>> </rant>
>>>>>
>>>>>
>>>>> On Sun, Nov 7, 2010 at 7:26 PM, Miguel Madero 
>>>>> <[email protected]>wrote:
>>>>>
>>>>>> +1 for Blend Triggers and Actions
>>>>>> +1 for Code Behind for uncommon scenarios as a second option.
>>>>>>
>>>>>> On Tue, Nov 2, 2010 at 2:36 PM, Paul Stovell <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> There is an Expression Blend trigger action that can invoke a command
>>>>>>> IIRC. That’s probably the easiest way.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Caliburn also has a nice approach of mapping an event to a ViewModel
>>>>>>> method via an attached property – something like <Button
>>>>>>> cal:Message.Attach=’[Event MouseOver] = DoSomething()’ />
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Personally, if there’s no command out of the box and it’s not a
>>>>>>> common scenario, I’m quite happy to write a plain old event handler and
>>>>>>> invoke the method on the VM manually. There’s nothing wrong with a  
>>>>>>> little
>>>>>>> code behind.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Paul
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> *From:* [email protected] [mailto:
>>>>>>> [email protected]] *On Behalf Of *Greg Keogh
>>>>>>> *Sent:* Tuesday, 2 November 2010 2:31 PM
>>>>>>> *To:* 'ozWPF'
>>>>>>> *Subject:* Events to command binding
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Some have scoffed when I expressed dismay at the artifice that
>>>>>>> creates binding. I’ve just discovered that I’m wasting hours of time
>>>>>>> converting events into commands. For example, iIt took me an hour to 
>>>>>>> find a
>>>>>>> piece of sample code that converted KeyDown on TreeView nodes to a 
>>>>>>> binding
>>>>>>> (found 
>>>>>>> HERE<http://stackoverflow.com/questions/612966/keyboard-events-in-a-wpf-mvvm-application>),
>>>>>>> but it needed delicate merging with existing ICommand processing 
>>>>>>> classes I
>>>>>>> use.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I estimate that 50% of the time I spend writing WPF apps is wasted
>>>>>>> trying to follow MVVM and bind the control XAML to my controller class. 
>>>>>>> It
>>>>>>> seems that every other man and his dog who is trying to follow the MVVM
>>>>>>> pattern as well has created untold amounts of confusing and conflicting 
>>>>>>> code
>>>>>>> for the purpose. I’m sick of searching for and finding jumbles of code 
>>>>>>> that
>>>>>>> I have to tidy up and include in my projects.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I feel compelled to write a small infrastructure that allows
>>>>>>> event-to-command binding in a generalised way, but I’ll bet it’s been 
>>>>>>> done
>>>>>>> already (multiple times and in multiple ways). Has anyone got any
>>>>>>> suggestions or comments on this? Surely I’m not the first person in the
>>>>>>> world to have stumbled across these hurdles.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> MVVM would be wonderful if all of the wiring was just built-in.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Greg
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>  _______________________________________________
>>>>>>>
>>>>>>> ozwpf mailing list
>>>>>>> [email protected]
>>>>>>> http://prdlxvm0001.codify.net/mailman/listinfo/ozwpf
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Miguel A. Madero Reyes
>>>>>> www.miguelmadero.com (blog)
>>>>>> [email protected]
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Miguel A. Madero Reyes
>>>>> www.miguelmadero.com (blog)
>>>>> [email protected]
>>>>>
>>>>> _______________________________________________
>>>>> ozwpf mailing list
>>>>> [email protected]
>>>>> http://prdlxvm0001.codify.net/mailman/listinfo/ozwpf
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> ozwpf mailing list
>>>> [email protected]
>>>> http://prdlxvm0001.codify.net/mailman/listinfo/ozwpf
>>>>
>>>>
>>>
>>>
>>> --
>>> Miguel A. Madero Reyes
>>> www.miguelmadero.com (blog)
>>> [email protected]
>>>
>>> _______________________________________________
>>> ozwpf mailing list
>>> [email protected]
>>> http://prdlxvm0001.codify.net/mailman/listinfo/ozwpf
>>>
>>>
>>
>> _______________________________________________
>> ozwpf mailing list
>> [email protected]
>> http://prdlxvm0001.codify.net/mailman/listinfo/ozwpf
>>
>>
>
>
> --
> Miguel A. Madero Reyes
> www.miguelmadero.com (blog)
> [email protected]
>
> _______________________________________________
> ozwpf mailing list
> [email protected]
> http://prdlxvm0001.codify.net/mailman/listinfo/ozwpf
>
>
_______________________________________________
ozwpf mailing list
[email protected]
http://prdlxvm0001.codify.net/mailman/listinfo/ozwpf

Reply via email to