2012-07-11 92 views
-2

如何將SelectionChanged事件添加到此XAML代碼?將事件添加到DataGridComboBoxColumn

<DataGridComboBoxColumn x:Name="stcombo" 
         CellStyle="{DynamicResource ComboBoxStyle}" 
         Header="Статус" 
         SelectedItemBinding="{Binding name_ru}" > 
    ???       
</DataGridComboBoxColumn> 
+1

任何工作?你有什麼嘗試?爲什麼失敗?投票結束爲非建設性的。 – J0HN 2012-07-11 09:25:44

+0

讓我們在這裏更精確一點:我假設你想通過XAML訂閱一個*事件處理程序*到那個UI元素?或者你真的想在XAML中定義* event *本身嗎? – stakx 2012-07-11 09:29:45

回答

4

我不認爲你可以添加DataGrid組合框的SelectedChanged事件。替代解決方案是 -

您可以將屬性綁定到組合框的SelectedItem,並使用此屬性的setter來處理selectedchanged事件邏輯。

無論何時用戶從組合框中選擇任何值,setter都會執行。

XAML - 背後

<DataGridComboBoxColumn CellStyle="{DynamicResource ComboBoxStyle}" x:Name="stcombo" Header="Статус" SelectedItemBinding ="{Binding SelectedCustomer,UpdateSourceTrigger=PropertyChanged}"> 

代碼/ Viwe型號

private Customer _selectedCustomer; 
public Customer SelectedCustomer 
{ 
    get 
    { 
     return _selectedCustomer; 
    } 
    set 
    { 
     _selectedCustomer = value; 
     //Do your custom logic 
    } 
} 
+0

請代碼!!!! – kekus 2012-07-11 09:22:37

+0

什麼是'客戶'? – kekus 2012-07-11 09:36:53

+0

這只是一個示例代碼,您可以將客戶替換爲使用combox綁定的類型。 – pchajer 2012-07-11 09:39:12

0

試試這個:

<DataGridTemplateColumn> 
    <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <ComboBox DisplayMemberPath=" " 
         SelectedValuePath=" " 
         SelectedValue="{Binding }" 
         SelectionChanged="" /> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate> 
</DataGridTemplateColumn> 
+0

但是x:Name =「stcombo」是不可見的,如果我試試這個 – kekus 2012-07-11 09:27:35

+0

你可以使用綁定...你想用名稱 – 2012-07-11 09:29:21

+0

實現的「不可見」....查看你的其他問題的答案。不要每20分鐘發佈一次類似的問題。 – Batuu 2012-07-11 09:31:17

0

有了這個線

<DataGridComboBoxColumn x:Name="stcombo" 
         CellStyle="{DynamicResource ComboBoxStyle}" 
         Header="Статус" 
         SelectedItemBinding="{Binding name_ru}"> 

    <DataGridComboBoxColumn.EditingElementStyle> 
     <Style TargetType="{x:Type ComboBox}"> 
      <EventSetter Event="SelectionChanged" Handler="yourCBSelectionChanged" /> 
     </Style> 
    </DataGridComboBoxColumn.EditingElementStyle> 


</DataGridComboBoxColumn> 

代碼:

private void yourCBSelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    //Your code 
}