0

CheckBox ,Lable で Binding を作成し、BoolToVisibleOrHidden クラスを実装しましたcheckBox1.IsChecked。Lable を表示する必要がある場合を意味します。実装したいのは、チェック ボックスをオンにした EventHandler であり、MessageBox で実装したいと考えています。Messabox.Yesラベルのみを表示する場合は、

 <CheckBox Name="_checkBoxExpertMode" IsChecked="{Binding Path=DisplayChecked, Mode=TwoWay}" 
 <Lable  Name="_lableDisplay" Visibility="{Binding Path=DisplayChecked, Mode=OneWay, NotifyOnTargetUpdated=True, Converter={StaticResource BoolToVisConverter}}"
                                                          />

 System.Windows.Forms.DialogResult dialogResult = System.Windows.Forms.MessageBox.Show("Sure", "Some Title", System.Windows.Forms.MessageBoxButtons.YesNo);
              if (dialogResult == System.Windows.Forms.DialogResult.Yes)
            {
                _checkBoxExpertMode.IsChecked = true;
            }
           else if (dialogResult == System.Windows.Forms.DialogResult.No)
           {
               _checkBoxExpertMode.IsChecked = false;
           }

しかし、メッセージボックスポップアップの前にラベルが表示されています。

助けてください、事前に感謝します

4

2 に答える 2

2

チェックボックスにバインディングをドロップし、Checkbox.Checked イベントを使用します。

<CheckBox Name="..." Checked="CheckBox_Checked"  />

イベント ハンドラーで、メッセージ ボックスを表示し、プロパティを使用してラベルを表示するかどうかを示します。

public class MyWindow
{
    public bool ShouldLabelBeDisplayed { get; set; }

    public void CheckBox_Checked(object sender, RoutedEventArgs e)
    {
        DialogResult dialogResult = MessageBox.Show(...);
        if (dialogResult == DialogResult.Yes)
        {
            ShouldLabelBeDisplayed = true;
        }
        else
        {
            ShouldLabelBeDisplayed = false;
        }
    }

最後に、ラベルの Visible プロパティをこのプロパティにバインドします。

    <Label Name="..." Visibility="{Binding Path=ShouldLabelBeDisplayed, Converter={StaticResource BoolToVisConverter}}" />

正確にはこれではないかもしれませんが、アイデアはわかります。

于 2013-04-24T09:58:01.540 に答える
0

label のプロパティを次のようにする場合は tru:

yourlabel.Visibility="Hidden". 

次に、表示したい場合は、プロパティを作成する必要があります。

yourlabel.Visibility="Visible".
于 2013-04-24T09:50:01.083 に答える