다음을 통해 공유


ContextMenuProvider.UpdateItemStatus 이벤트

업데이트: 2007년 11월

메뉴 항목이 표시되기 직전에 발생합니다.

네임스페이스:  Microsoft.Windows.Design.Interaction
어셈블리:  Microsoft.Windows.Design.Extensibility(Microsoft.Windows.Design.Extensibility.dll)

구문

Public Event UpdateItemStatus As EventHandler(Of MenuActionEventArgs)

Dim instance As ContextMenuProvider
Dim handler As EventHandler(Of MenuActionEventArgs)

AddHandler instance.UpdateItemStatus, handler
public event EventHandler<MenuActionEventArgs> UpdateItemStatus
public:
 event EventHandler<MenuActionEventArgs^>^ UpdateItemStatus {
    void add (EventHandler<MenuActionEventArgs^>^ value);
    void remove (EventHandler<MenuActionEventArgs^>^ value);
}
JScript에서는 이벤트를 지원하지 않습니다.

예제

다음 코드 예제에서는 UpdateItemStatus 이벤트를 처리하여 MenuAction 개체를 기본 선택 내용의 값으로 업데이트하는 방법을 보여 줍니다. 자세한 내용은 연습: MenuAction 만들기를 참조하십시오.

' The following method handles the UpdateItemStatus event.
' It sets the MenuAction states according to the state
' of the control's Background property. This method is
' called before the context menu is shown.
Sub CustomContextMenuProvider_UpdateItemStatus( _
    ByVal sender As Object, _
    ByVal e As MenuActionEventArgs)

    ' Turn everything on, and then based on the value 
    ' of the BackgroundProperty, selectively turn some off.
    clearBackgroundMenuAction.Checked = False
    clearBackgroundMenuAction.Enabled = True
    setBackgroundToBlueMenuAction.Checked = False
    setBackgroundToBlueMenuAction.Enabled = True

    ' Get a ModelItem which represents the selected control. 
    Dim selectedControl As ModelItem = _
        e.Selection.PrimarySelection

    ' Get the value of the Background property from the ModelItem.
    Dim backgroundProperty As ModelProperty = _
        selectedControl.Properties(Control.BackgroundProperty)

    ' Set the MenuAction items appropriately.
    If Not backgroundProperty.IsSet Then
        clearBackgroundMenuAction.Checked = True
        clearBackgroundMenuAction.Enabled = False
    ElseIf backgroundProperty.ComputedValue.Equals(Brushes.Blue) Then
        setBackgroundToBlueMenuAction.Checked = True
        setBackgroundToBlueMenuAction.Enabled = False
    End If

End Sub
// The following method handles the UpdateItemStatus event.
// It sets the MenuAction states according to the state
// of the control's Background property. This method is
// called before the context menu is shown.
void CustomContextMenuProvider_UpdateItemStatus(
    object sender, 
    MenuActionEventArgs e)
{
    // Turn everything on, and then based on the value 
    // of the BackgroundProperty, selectively turn some off.
    clearBackgroundMenuAction.Checked = false;
    clearBackgroundMenuAction.Enabled = true;
    setBackgroundToBlueMenuAction.Checked = false;
    setBackgroundToBlueMenuAction.Enabled = true;

    // Get a ModelItem which represents the selected control. 
    ModelItem selectedControl = e.Selection.PrimarySelection;

    // Get the value of the Background property from the ModelItem.
    ModelProperty backgroundProperty = 
        selectedControl.Properties[Control.BackgroundProperty];

    // Set the MenuAction items appropriately.
    if (!backgroundProperty.IsSet)
    {
        clearBackgroundMenuAction.Checked = true;
        clearBackgroundMenuAction.Enabled = false;
    }
    else if (backgroundProperty.ComputedValue == Brushes.Blue)
    {
        setBackgroundToBlueMenuAction.Checked = true;
        setBackgroundToBlueMenuAction.Enabled = false;
    }
}

권한

  • 직접 실행 호출자의 경우 완전히 신뢰합니다. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다. 자세한 내용은 부분 신뢰 코드에서 라이브러리 사용을 참조하십시오.

참고 항목

참조

ContextMenuProvider 클래스

ContextMenuProvider 멤버

Microsoft.Windows.Design.Interaction 네임스페이스

PrimarySelectionContextMenuProvider

MenuGroup

MenuAction

FeatureProvider

기타 리소스

기능 공급자 및 기능 커넥터

WPF Designer 확장성 이해