/ / Caliburn Micro desativar botões que não possuem propriedade? - c #, botão, caliburn.micro

Caliburn Micro desativar botões que não possuem propriedade? - c #, botão, caliburn.micro

No momento, estou trabalhando com a Caliburn Micro. Mas cheguei a um problema que não sei como resolver.

O problema é que eu quero desativar os botões, masCada site tem apenas uma solução com propriedades. as funções dos meus botões, por exemplo, apenas iniciam um thread para estabelecer uma conexão através do tcp com o Netmq. Então eu não sei como eu vou ser capaz de desativá-los. Pesquisei muito através do google mas não encontrei nada de útil.

Exemplo de uma função de botão

public void startPubButton()
{
Thread entryThread = new Thread(startPublisher);
entryThread.IsBackground = true;
entryThread.Start();
}

Existe talvez a possibilidade de ativar os botões somente quando o segmento é executado?

Respostas:

1 para resposta № 1

Essa é a única premissa por trás da fiação CM porconvenção tudo que você precisa fazer é fornecer uma propriedade Boolean CanstartPubButton executar uma verificação de código para ver se você pode ativar ou desativar o botão de acordo com a lógica com que guard propriedade. Ligue com NotifyOfPropertyChange(() => CanstartPubButton); de alguma forma, para fazer o que quiser. A lógica com a propriedade (obter apenas necessário) é com você. Uma outra coisa que vou contar em você é um tópico atualmente nas discussões do GitHub sobre o próprio repositório. Pode ajudar e pode não

https://github.com/Caliburn-Micro/Caliburn.Micro/issues/422


0 para resposta № 2

É simples. Vamos dizer que na View eu dei o nome x: name = "MyButton"

No modelo de visão, agora configuro a ação (clique)

public void MyButton(bool anyName)
{//do work here}

//Set up 2 bools one to hold the state and one to control the state
public bool AnyName {get; set;}
public bool CanMyButton //must be Can+button name
{get {return AnyName; } }

feito. Agora, se você quiser desativar o botão

AnyName = false;
NotifyOfPropertyChange(() => CanMyButton);

Defina como true para ativar. Há provavelmente uma maneira de fazer a segunda linha no bool de nome, mas eu sou muito novo para c #