2012-04-30 11 views
6

ho avuto un pulsante all'interno di una griglia che contiene molti altri pulsanti e controlli di questo tipoattivazione di un pulsante specifico all'interno di un disabile griglia

<Grid IsEnabled="false"> 
    <Grid.ColumnsDefinition> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
    </Grid.ColumnsDefinition> 
    <Button Content="Run"/> 
    <Button Grid.Column="1" Content="Test"/> 
    <Button Grid.Column="2" Content="Cancel" IsEnabled="true"/> 
</Grid> 

Come si può vedere la griglia è disattivato, ma il pulsante annulla al suo interno dovrebbe essere abilitato.

Il problema che sto avendo è che anche se ho impostato il pulsante interno per essere abilitato, rimane disabilitato, probabilmente perché il suo genitore è disabilitato.

Esiste un modo per ignorare questo comportamento e forzare l'attivazione del pulsante?

Lo sto utilizzando per un caso in cui è in esecuzione un lungo processo in background, quindi tutte le azioni dell'interfaccia utente tranne che per annullare il processo devono essere disabilitate.

Grazie!

risposta

2

No. L'impostazione della proprietà su false conduce alla disattivazione di tutti gli elementi visivi nidificati. Si dovrebbe pensare ai contenuti dell'elemento come parti del suo essere. Disabilitare l'elemento significa disabilitare tutte le sue parti.

La soluzione più semplice consiste nel modificare il codice per soddisfare le proprie esigenze. Avrei preferito portare il tasto Annulla fuori da questa Grid così non è mai influenzata da IsEnabled proprietà della Grid

+3

campione Il codice che ho portato qui è solo una semplice versione di una struttura di interfaccia utente molto più complessa che ho. So che la soluzione potrebbe funzionare, ma significherebbe che avrei gestito l'abilitazione e disabilitazione di molti altri controlli di pari livello che sarebbero un grande sovraccarico per una semplice richiesta. Mi chiedo se forse c'è un'altra soluzione. Grazie! – Dror

+0

La soluzione è utilizzare i comandi e/o MVVM – EvAlex

Problemi correlati