簡體   English   中英

如何捕獲WPF中Datagrid單元的值更改事件?

[英]How to capture value change event of Datagrid's cell in WPF?

我正在使用Datagrid顯示一些MySQL表。自然地,我希望datagrid的更改應反映在MySQL表中。我編寫了一個命令來處理Cell value changed event ,但是該命令沒有成功:

<DataGrid x:Name="Table_DataGrid" Grid.Row="0" Grid.Column="0"  
    HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0"
    ItemsSource="{Binding MyServerWrapViewModel.TableFromMySql,
                  Source={StaticResource Locator}}">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="TargetUpdated">
            <cmd:EventToCommand
                Command="{Binding updateCell}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
</DataGrid>

我認為我正在聽錯事件,因為我的updateCell沒有命中...您如何捕獲datagrid的cell value changed event

我想出了一個解決方案。

首先添加相關的ViewModel作為DataGrid's DataContext否則編譯器將不知道在哪里可以找到綁定命令。

DataContext="{Binding MyServerWrapViewModel,Source={StaticResource Locator}}"

然后將TargetUpdated更改為CurrentCellChanged

您為什么要附加活動? 通常,您將根據ObservableCollection中對象的某些屬性為列創建DataBinding。 網格單元格中的更改將直接推送到綁定到的屬性的設置器中。 從那里,您可以做任何讓您滿意的事情,例如寫入db或設置修改的標志。

暫無
暫無

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

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