-1

SelectionChangedこのXAMLコードにイベントを追加するにはどうすればよいですか?

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

3 に答える 3

5

データグリッド コンボボックスの SelectedChanged イベントを追加できるとは思いません。別の解決策は -

プロパティをコンボボックスの SelectedItem にバインドし、このプロパティのセッターを使用して selectedchanged イベント ロジックを処理できます。

ユーザーがコンボボックスから任意の値を選択するたびに、セッターが実行されます。

XAML -

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

コード ビハインド /View Model

private Customer _selectedCustomer;
public Customer SelectedCustomer
{
    get
    {
       return _selectedCustomer;
    }
    set
    {
       _selectedCustomer = value;
       //Do your custom logic
    }
}
于 2012-07-11T09:21:28.210 に答える
1

この行で

<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
}
于 2016-12-29T15:36:26.733 に答える
0

これを試してください:

 <DataGridTemplateColumn>
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ComboBox DisplayMemberPath=" "
                      SelectedValuePath=" "
                      SelectedValue="{Binding  }"
                      SelectionChanged="" />
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
于 2012-07-11T09:25:39.783 に答える