2

WPF プロジェクトの XAML でブール コンバーターを使用しています。「IsBusy」が true の間、いくつかのボタンを無効にしたい。IsBusy が正しく true/false に設定されていることは間違いありません。コンバーターなしで IsBusy に直接バインドできました。以下は現在動作しません。実際のコンバーター クラスにブレークポイントを設定しましたが、「Convert」メソッドと「ConvertBack」メソッドがヒットすることはありません。ここで何が問題なのですか?

IsEnabled="{Binding IsBusy, Converter={StaticResource InvertedBooleanConverter}}"

資力:

<Window.Resources>
    <converters:InvertedBooleanConverter x:Key="InvertedBooleanConverter" />
</Window.Resources>

コンバーター:

xmlns:converters="clr-namespace:MyProject.Converters"

コンバーター:

namespace MyProject.Converters
 {

    [ValueConversion(typeof(bool), typeof(bool))]
    public class InvertedBooleanConverter : IValueConverter
    {
        #region IValueConverter Members

        public object Convert(object value, Type targetType, object parameter,
            System.Globalization.CultureInfo culture)
        {
            if (targetType != typeof(bool))
                throw new InvalidOperationException("The target must be a boolean");

            return !(bool)value;
        }

        public object ConvertBack(object value, Type targetType, object parameter,
            System.Globalization.CultureInfo culture)
        {
            throw new NotSupportedException();
        }

        #endregion
    }
}
4

2 に答える 2

4

isBusy 依存プロパティの場合 そうでない場合、変更フォーム IsBusy は isEnable に送信されません。

于 2012-11-06T17:11:03.053 に答える
1

一歩下がって、バインディングが適切な場所にあることを確認してください。追加<TextBlock Text="{Binding}" />して、正しいクラス (IsBusy を含むクラス) が表示されていることを確認してください。

于 2012-11-06T18:34:04.620 に答える