簡體   English   中英

將上下文菜單 header 綁定到 ListView 的選定項

[英]Binding a context menu header to the selected item of a ListView

我正在嘗試將上下文菜單的 header 綁定到相應ListView的選定項的屬性。 ItemsSource的對象具有IsDuplicate屬性。 知道有什么問題嗎?

<ListView x:Name="AthletesListView" ItemsSource="{Binding FoundAthletes}">
   <ListView.ContextMenu>
      <ContextMenu>
         <MenuItem Name="AddorEditAthleteMenuItem" 
                   Header="{Binding SelectedItem.IsDuplicate, 
                          ElementName=AthletesListView,
                          Converter={StaticResource FoundAthletesAddEditMenuItemConverter}}" 
                   Click="AddAthleteMenuItem_Click"/>
      </ContextMenu>
   </ListView.ContextMenu>

錯誤信息下方:

System.Windows.Data 錯誤:4:找不到與引用“ElementName = AthletesListView”綁定的源。 綁定表達式:路徑=選定項; 數據項=空; 目標元素是'MenuItem'(名稱='AddorEditAthleteMenuItem'); 目標屬性是“標題”(類型“對象”)

ContextMenu與關聯的ListView不是同一可視化樹的一部分,因為它顯示在不同的 window 中。 因此,相對源和元素名稱綁定不起作用。

相反,您可以使用ContextMenuPlacementTarget ,即ListView

<MenuItem Name="AddorEditAthleteMenuItem" 
          Header="{Binding PlacementTarget.SelectedItem.IsDuplicate, RelativeSource={RelativeSource AncestorType={x:Type ContextMenu}}, Converter={StaticResource FoundAthletesAddEditMenuItemConverter}}"
          Click="AddAthleteMenuItem_Click"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM