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
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
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...
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?
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...
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
"Mauro Servienti [MVP]" <maurose...@online.nospam> ha scritto nel
messaggio news:mn.93947d9ca...@online.nospam...
http://www.codeproject.com/KB/WPF/MapperCommandBinding.aspx?msg=3005947
--
Corrado Cavalli [Microsoft .NET MVP-MCP]
UGIdotNET - http://www.ugidotnet.org
Weblog: http://blogs.ugidotnet.org/corrado/
"Corrado Cavalli [MVP]" <corradoN0...@mvps.0rg> ha scritto nel
messaggio news:7p38e1...@mid.individual.net...