0
每一行我有一個GridView它有幾個專欄它們都綁定到一個數據結構在我的視圖模型層,所以我想要做的是WPF上下文菜單在GridView
- 有一個上下文菜單,當用戶點擊GridView中的一行數據時會彈出(到目前爲止,只有當我點擊我放置的列的標題時,才能使上下文菜單出現。)
- 根據用戶點擊的當前行的內容,上下文菜單的內容會有所不同。
有什麼建議嗎?謝謝
每一行我有一個GridView它有幾個專欄它們都綁定到一個數據結構在我的視圖模型層,所以我想要做的是WPF上下文菜單在GridView
有什麼建議嗎?謝謝
你可以在ItemContainerStyle
中設置ContextMenu
,使其依賴於你可以使用的一些行DataTriggers
。
編輯:如果你決定換出整個文本菜單上的條件結構應採取以下形式:
<Style TargetType="{x:Type ListViewItem}">
<Style.Resources>
<ContextMenu x:Key="DefaultMenu">
<!-- Rest of menu here -->
</ContextMenu>
<ContextMenu x:Key="NonDefaultMenu">
<!-- Rest of menu here -->
</ContextMenu>
</Style.Resources>
<Style.Triggers>
<DataTrigger Binding="{Binding SomeProperty}" Value="SomeValue">
<Setter Property="ContextMenu" Value="{StaticResource NonDefaultMenu}"/>
</DataTrigger>
</Style.Triggers>
<Setter Property="ContextMenu" Value="{StaticResource DefaultMenu}"/>
</Style>
你通常也可以代替定義文本菜單很好,但如果你添加事件處理程序它得到越野車,語法將是:
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<!-- Rest of menu here -->
</ContextMenu>
</Setter.Value>
</Setter>
我想添加一個DataTrigger風格.Triggers部分和DataTrigger裏面我有一個上下文菜單,但我仍然收到錯誤「類型'上下文菜單'的值不能被添加到'SetterBaseCollection'類型的集合或字典中,對不起我第一次編程WPF所以我不知道這是什麼意思,我錯過了什麼? –
添加了一些示例代碼(希望這不會是錯誤,因爲我寫在這裏)... –
@HB,那個錯誤「類型的'上下文菜單'的值不能被添加到'SetterBaseCollection'類型的集合或字典如果我們創建上下文菜單的StaticResource並將其設置爲一個值,那麼''將會消失... –