2014-02-12 46 views
-1

讓我們asume,我有一個ContextMenu這樣在代碼WPF Datagrid的文本菜單訪問項目的背後

<DataGrid.ContextMenu> 
    ContextMenu Name="cmNewState" > 
    <MenuItem Header="Test" IsCheckable="True" IsChecked="True" /> 
    <CheckBox Content="CallerId" IsChecked="True" Unchecked="CheckBoxNewState_Unchecked" Checked="CheckBoxNewState_Checked" /> 
    <CheckBox Content="CallerIdName" IsChecked="True" Unchecked="CheckBoxNewState_Unchecked" Checked="CheckBoxNewState_Checked"/> 

我怎麼可以在代碼中訪問單品背後的文本菜單像

cmNewState .... ..... ???

感謝您的幫助

一標段
+0

在後面的代碼中可以訪問DataGrid嗎?如果是這樣,你可以循環'ContextMenu.Items'來獲得單個物品並做你的事情...... – Sankarann

+0

你爲什麼要這麼做?你可以發佈原因,可能有更好的方法來實現這一點。 WPF的設計不是這樣工作的。 –

回答

0

你可以給在文本菜單名稱的項目,以及:MyNameHere

<MenuItem Header="Test" IsCheckable="True" IsChecked="True" Name="MyNameHere" /> 

然後你就可以在後臺代碼與名稱訪問它們


ContextMenu的元素也可以通過訪問Contextmenu中包含的Items-collection來訪問,例如:cmNewState.Items[index]

+0

是的,但如果我不這樣做,那樣!我正在尋找一種方法,我可以通過索引訪問這些項目! – user2367263

+0

我試過這個(cmNewState.Items [index]),但我無法訪問單個元素的屬性,如「IsChecked ....」 – user2367263

+0

.............. ......................................... – user2367263