Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

RibbonCommand Command

2 views
Skip to first unread message

Flavio Miano

unread,
Dec 17, 2009, 4:00:36 PM12/17/09
to
Dopo vari tentativi e googleggiare
nn sono ancora riuscito a creare la situazione che dal ribobn command
collegare il mio delegatecommand del viewmodel

desideravo creare una attached property Command appunto da collegare al
ribboncommand

ma nn funge

qualche link/idea
per creare la situazione
<r:RibbonCommand command="{Binding cmdEseguicomando}" />
???
grazie in anticipo
FLAVIO

Mauro Servienti [MVP]

unread,
Dec 17, 2009, 11:47:16 PM12/17/09
to
Ciao Flavio,

You wrote on 17/12/2009 :
> per creare la situazione
> <r:RibbonCommand command="{Binding cmdEseguicomando}" />
> ???

non ho capito cosa vuoi fare, puoi spiegarti meglio? cosa ᅵ un
RibbonCommand?

.m

--
Mauro Servienti
{C67C0157-5D98-4733-A75E-93CAEE4BADC8}
Microsoft MVP - Visual C# / MCP
http://mvp.support.microsoft.com
http://blogs.ugidotnet.org/topics
whynot [ at ] topics [ dot ] it


Flavio Miano

unread,
Dec 18, 2009, 8:20:08 AM12/18/09
to
Scenario :

controllo ribbon con relativi comandi

<Window.Resources>
<r:RibbonCommand x:Key="ListaOrdini" x:Name="ListaOrdini"
LabelTitle="Ordini"
LabelDescription="Visualizza la lista degli
ordini"
CanExecute="ListaOrdini_CanExecute"
Executed="ListaOrdini_Executed"/>
</Window.Resources>

<r:Ribbon DockPanel.Dock="Top">
<r:RibbonTab Label="Home" IsSelected="True">
<!-- Ordini -->
<r:RibbonGroup >
<r:RibbonGroup.Command>
<r:RibbonCommand LabelTitle="Gestione Documenti" />
</r:RibbonGroup.Command>
<r:RibbonButton Command="{StaticResource ListaOrdini}"
/>
<r:RibbonButton Command="{StaticResource ListaDDT}" />
<r:RibbonButton Command="{StaticResource ListaFatture}"
/>
</r:RibbonGroup>
</r:RibbonTab>
</r:Ribbon>


in r:RibbonCommand invece di

CanExecute="ListaOrdini_CanExecute"
Executed="ListaOrdini_Executed"

dove esegui le chiamate :
e.CanExecute = Viewmodel.cmdListaOrdini.CanExecute(e.Parameter)
e
ViewModel.cmdListaOrdini.Execute(e.Parameter)

vorrei poter inserire direttamente e senza passare attraverso gli eventi
Command ="{Binding cmdListaOrdini}"

dove il mio delegate Command ᅵ (preso dal webcast di Corrado Cavalli sul
bike store)

public class DelegateCommand : ICommand
{

private readonly Action<object> executeMethod = null;
private readonly Func<object, bool> canExecuteMethod = null;

public DelegateCommand(Action<object> executeMethod,
Func<object, bool> canExecuteMethod)
{
this.executeMethod = executeMethod;
this.canExecuteMethod = canExecuteMethod;
}

public event EventHandler CanExecuteChanged
{
add
{
CommandManager.RequerySuggested += value;
}
remove
{
CommandManager.RequerySuggested += value;
}
}

#region ICommand Membri di

public bool CanExecute(object parameter)
{
if (canExecuteMethod == null) return true;
return this.canExecuteMethod(parameter);
}

public void Execute(object parameter)
{
if (executeMethod == null) return;
this.executeMethod(parameter);
}
#endregion
}

e la dichiarazione nel mio viewmodel ᅵ

Public Class ViewModelMain
Inherits ViewModelBase

Public Sub New()
Me.cmdListaOrdini = New DelegateCommand(AddressOf
cmdListaOrdiniExecute, AddressOf cmdListaOrdiniCanExecute)
End Sub

Private _cmdListaOrdini As DelegateCommand
Public Property cmdListaOrdini() As DelegateCommand
Get
Return _cmdListaOrdini
End Get
Set(ByVal value As DelegateCommand)
_cmdListaOrdini = value
End Set
End Property

Private Function cmdListaOrdiniCanExecute(ByVal Parameter As Object) As
Boolean
Return True
End Function

Private Sub cmdListaOrdiniExecute(ByVal Parameter As Object)
MsgBox("Vediamo se funziona Lista Ordini !!!")
End Sub

End Class

Chiaramente nel Form

Private Withevents ViewModel as ViewModelListaOrdini
Public Sub new()
ViewModel = New ViewModelListaOrdini
me.DataContext = ViewModel
End Sub


... Spero di essere stato chiaro
grazie in anticipo per il vostro aiuto utilissimo !!!
Flavio

"Mauro Servienti [MVP]" <maurose...@online.nospam> ha scritto nel
messaggio news:mn.915b7d9c4...@online.nospam...

Mauro Servienti [MVP]

unread,
Dec 18, 2009, 8:25:31 AM12/18/09
to
Ciao Flavio Miano,

You wrote on 18/12/2009 :
> vorrei poter inserire direttamente e senza passare attraverso gli eventi
> Command ="{Binding cmdListaOrdini}"

ok, ma cosa c'ᅵ che non funziona?

Flavio Miano

unread,
Dec 18, 2009, 8:37:27 AM12/18/09
to
Vorrei creare in RibbonCommand
la proprietᅵ Command ="{Binding cmdListaordine}"

che non c' ᅵ !!!
ho provato con le Attached property ma mi sono incasinato un po' (in vb.net)

Grazie
Flavio

ps. In realtᅵ devo poter creare nel Ribbon delle specialized group che
appaiono quando viene richiamato un certo UserControl che faccio apparire
nella form
esempio :
se clicco sul pulsante della toolbar Lista Ordini devo inserire nella parte
sotto del ribbon control lo usercontrol che visualizza la lista ordini e nel
ribbon control una barra che visualizza tutti i comandi relativi alla lista
ordini.
un pᅵ come l'equation editor in word 2007

"Mauro Servienti [MVP]" <maurose...@online.nospam> ha scritto nel

messaggio news:mn.93617d9c8...@online.nospam...

Mauro Servienti [MVP]

unread,
Dec 18, 2009, 9:16:39 AM12/18/09
to
Ciao Flavio Miano,

You wrote on 18/12/2009 :
> Vorrei creare in RibbonCommand
> la proprietᅵ Command ="{Binding cmdListaordine}"

Sicuramente mi perdo qualcosa per strada io (ho fame...) ma non riesco
proprio a capire a cosa ti serve, se il ViewModel espone il comando
perchᅵ non metti direttamente in binding quello con i command dei vari
elementi?

> ps. In realtᅵ devo poter creare nel Ribbon delle specialized group che
> appaiono quando viene richiamato un certo UserControl che faccio apparire
> nella form
> esempio :
> se clicco sul pulsante della toolbar Lista Ordini devo inserire nella parte
> sotto del ribbon control lo usercontrol che visualizza la lista ordini e nel
> ribbon control una barra che visualizza tutti i comandi relativi alla lista
> ordini.
> un pᅵ come l'equation editor in word 2007

devi spingerti verso UI Composition

Flavio Miano

unread,
Dec 18, 2009, 4:43:32 PM12/18/09
to
perchᅵ il RibbonButton accetta solo un ribboncommand
ed il ribboncommand non espone la dependencyproperty Command
come vorrei io !
Grazie ancora
Flavio


"Mauro Servienti [MVP]" <maurose...@online.nospam> ha scritto nel

messaggio news:mn.93947d9ca...@online.nospam...

Corrado Cavalli [MVP]

unread,
Dec 19, 2009, 12:59:29 AM12/19/09
to

Flavio Miano

unread,
Dec 19, 2009, 6:31:09 AM12/19/09
to
Avevo visto questo esempio
nn sono riuscito ad utilizzarlo ...
adesso ci riprovo
Grazie
Flavio


"Corrado Cavalli [MVP]" <corradoN0...@mvps.0rg> ha scritto nel
messaggio news:7p38e1...@mid.individual.net...

0 new messages