Так что мне не нравилось использовать OverrideCursor, потому что у меня было несколько окон, и я хотел, чтобы те, которые в данный момент не выполняли что-либо, имели обычный курсор со стрелкой.
Вот мое решение:
<Window.Style>
<Style TargetType="Window">
<Style.Triggers>
<DataTrigger Binding="{Binding IsBusy}" Value="True">
<Setter Property="Cursor" Value="Wait" />
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Style>
<Grid>
<Grid.Style>
<Style TargetType="Grid">
<Style.Triggers>
<DataTrigger Binding="{Binding IsBusy}" Value="True">
<Setter Property="IsHitTestVisible" Value="False" /> <!-- Ensures wait cursor is active everywhere in the window -->
<Setter Property="IsEnabled" Value="False" /> <!-- Makes everything appear disabled -->
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
<!-- Window controls go here -->
</Grid>
Из соображений сортировки я бы рекомендовал структурированный подход:
TR_Users_AD
TR_Users_BD
TR_OtherTable_AI
и т. Д.
В конце концов, решать вам - но что бы вы ни выбрали, оставайтесь последовательными , по крайней мере, в той же базе данных.
Я согласен с @tomalak - но обычно я пишу действие в конце, а не сокращаю его ...
trig_Users_delete
trig_Users_insert
trig_OtherTable_Insert
trig_OtherTable_InsteadOfInsert