为什么当我设置打开对话框命令时我的按钮被禁用?

问题描述 投票:0回答:2

我正在使用 WPFMaterial Desgin

DialogHost
,当我设置打开对话框的命令时,即使使用
IsEnabled="True"
属性,我的按钮也被禁用。

这是我的按钮 XAML 代码:

<Button IsEnabled="True" Command="{x:Static materialDesign:DialogHost.OpenDialogCommand}" TabIndex="16" x:Name="ButtonSalvar" BorderBrush="#FF2A5500" VerticalAlignment="Bottom" HorizontalAlignment="Stretch" Grid.Column="2" Grid.ColumnSpan="2"  Height="50" Margin="10 0 20 20" Background="#FF2A5500">
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Stretch">
        <materialDesign:PackIcon Kind="Check" Width="40" Height="40" Margin="0 0 10 0" />
        <TextBlock Text="Salvar" VerticalAlignment="Center" FontSize="30" HorizontalAlignment="Center" />
    </StackPanel>
</Button>
wpf xaml mvvm material-design-in-xaml
2个回答
1
投票

如果您未指定

DialogHost
,则需要将按钮放置在
CommandTarget
内。

<materialDesign:DialogHost>
   <materialDesign:DialogHost.DialogContent>
       <!-- Your dialog content -->
   </materialDesign:DialogHost.DialogContent>
   <Button Command="{x:Static materialDesign:DialogHost.OpenDialogCommand}"
           Content="Show"/>
</materialDesign:DialogHost>

或者,通过

x:Name="YourDialogHost"
命名对话框主机,并将其设置为按钮的
CommandTarget
(如果它不在对话框主机内部)。

<Button Command="{x:Static materialDesign:DialogHost.OpenDialogCommand}"
        CommandTarget="{Binding ElementName=YourDialogHost}"
        Content="Show"/>

0
投票

我将内容作为绑定到 DialogHost 的单独用户控件提供,如下所示:

DialogContent="{Binding DialogContent}"

我的用户控件中的按钮在最初打开为禁用状态后需要几秒钟才能启用。

有办法解决这个问题吗?

© www.soinside.com 2019 - 2024. All rights reserved.