-1

私はWPFアプリケーションに取り組んでいます。

コンボボックスからアイテムを選択したときにのみツリービューを表示したい。

これが私のコンボボックス選択プロパティです

    public string SelectedTransactionName
    {
        set
        {
            if (_selectedTransactionWsName == value) return;
            this._selectedTransactionWsName = value;

            // InitializaMessageElement(value.WsMethodName, transactionTypes);
            InitializaMessageElement();

            this.NotifyPropertyChanged(()=>IsTransactionNameSelected.ToString());
        }
        get
        {
            return this._selectedTransactionWsName;
        }

    }

トランス名が選択されているかどうかを確認します。

  public bool IsTransactionNameSelected
    {
        get
        {
            return !string.IsNullOrEmpty(_selectedTransactionWsName);
        }
    }

XAML

    <TreeView Margin="464,137,10,413" Grid.RowSpan="2" ItemsSource="{Binding   MessageElements,  Mode=TwoWay}"   
                  SelectedItemChanged="TreeView_OnSelectedItemChanged"  Visibility="    {Binding IsTransactionNameSelected,Converter={StaticResource BooleanToVisibilityConverter}}"
                 SelectedValuePath="Id" 

これで.NotifyPropertyChanged(()=>IsTransactionNameSelected.ToString()); エラーが発生します (デリゲート型ではないため、ラムダ式を「文字列」型に変換できません)、NotifyPropertyChanged は文字列を取ります

4

1 に答える 1

2

あなたNotifyPropertyChangedは文字列を期待しており、それをデリゲートに渡しています。試す:

public string SelectedTransactionName
{
    set
    {
        if (_selectedTransactionWsName == value) return;
        this._selectedTransactionWsName = value;

        // InitializaMessageElement(value.WsMethodName, transactionTypes);
        InitializaMessageElement();

        this.NotifyPropertyChanged("SelectedTransactionName");
        this.NotifyPropertyChanged("IsTransactionNameSelected");
    }

    get
    {
        return this._selectedTransactionWsName;
    }
}
于 2013-06-19T00:20:51.953 に答える