2016-06-20 72 views
1

我正在WPF上工作。我有ListBox,我通過「ObservableCollection」以編程方式添加ListBox Items,因爲我必須在運行時添加和刪除它。我在ListBoxItems上有ContextMenu。現在我想通過點擊上下文菜單來獲取選定的項目。這裏是我的代碼:使用ContextMenu獲取選定的項目列表框

的.cs

ObservableCollection<string> MyItems = null; 

    public MessageTrcr() 
    { 
     InitializeComponent(); 

     MyItems = new ObservableCollection<string>(); 

     listofConnectedItems.ItemsSource = MyItems; 

     CreateListItem("Sandeep"); 
     CreateListItem("Gopi"); 
    } 

    public void CreateListItem(String ItemName) 
    { 
     MyItems.Add(ItemName); 
    } 
    private void MenuItemStart_Click(object sender, RoutedEventArgs e) 
    { 
     // What should I write here to get selected Item 
    } 

和.XAML

<Grid> 
    <ListBox x:Name="listofConnectedItems" Grid.Column="0" Grid.Row="0" ItemsSource="{Binding MyItems}" > 
     <ListBox.ItemContainerStyle> 
      <Style TargetType="{x:Type ListBoxItem}"> 
       <Setter Property="Padding" Value="10"> 
       </Setter> 
      </Style> 
     </ListBox.ItemContainerStyle> 
     <ListBox.ContextMenu> 
      <ContextMenu x:Name="contextMenu"> 
       <MenuItem Header="_Start" Click="MenuItemStart_Click" /> 
       <MenuItem Header="Sto_p" /> 
       <MenuItem Header="_Clear" /> 
      </ContextMenu> 
     </ListBox.ContextMenu> 
    </ListBox> 
</Grid> 

下面是截圖。

enter image description here

當我右鍵單擊戈皮並開始按我想「戈皮」在MenuItemStart_Click

現在我應該怎麼在「MenuItemStart_Click」事件中寫入獲取所選項目。我試過e.OriginalSource as MenuItemsender as MenuItem但沒用。任何人都可以請我通過這個。在此先感謝

+1

listofConnectedItems.SelectedItem?這應該給你 – adminSoftDK

+0

@adminSoftDK謝謝你的傢伙。它工作完美。我不明白我是如何錯過它的。無論如何謝謝你:) – Gopi

回答

0

爲什麼不綁定選定的項目屬性呢?

<ListBox 
    SelectedItem = {Binding SelectedItemProperty, Mode="TwoWay"} 
    x:Name="listofConnectedItems" 
    Grid.Column="0" Grid.Row="0" 
    ItemsSource="{Binding MyItems}" > 
在你的代碼

然後旁邊的觀察到的集合

public string SelectedItemProperty {get; set;} 
+0

我檢查了你的代碼,但它什麼都沒顯示。正如@adminSoftDK所說的「listofConnectedItems.SelectedItem」正在工作。無論如何謝謝:) – Gopi

+0

@戈皮我向你保證,這是做到這一點的正確方法。通過後面代碼中的名稱訪問對象是不可維護的。當您切換到MVVM結構時會發生什麼?大聲笑無論如何,祝你好運。 –

相關問題