Pergunta

Estou usando a seguinte marcação no WPF:

    <StackPanel.Triggers>
        <EventTrigger RoutedEvent="RadioButton.Checked" SourceName="xmlRadioButton">
            <EventTrigger.Actions>
                <BeginStoryboard Storyboard="{StaticResource ShowXmlPanel}"/>
            </EventTrigger.Actions>
        </EventTrigger>
        <EventTrigger RoutedEvent="RadioButton.Checked" SourceName="adiRadioButton">
            <EventTrigger.Actions>
                <BeginStoryboard Storyboard="{StaticResource ShowAdiPanel}"/>
            </EventTrigger.Actions>
        </EventTrigger>
    </StackPanel.Triggers>

Embora isso funcione bem quando eu executo o código, recebo o seguinte erro na janela do designer do VS 2008:

Valor 'Radiobutton.Checked' não pode ser atribuído à propriedade 'RouteDevent'. Nome do evento inválido.

Alguma idéia do porquê e como posso consertar isso?

Foi útil?

Solução

RadioButton é um ToggleButton. O designer suporta o anexo ToggleButton propriedades, mas não a RadioButton uns (exceto em um RadioButton tag, é claro).

Você precisa usar o nome da classe que define a propriedade/evento para o designer aceitá -lo (pensei que não há diferença no tempo de execução, pois RadioButton É um ToggleButton Como eu disse, mas o designer não é um compilador real).

Então, no seu caso, use <EventTrigger RoutedEvent="ToggleButton.Checked ..." ;-)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top