/
CustomReminderWindow.xaml
109 lines (105 loc) · 4.95 KB
/
CustomReminderWindow.xaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<Window
x:Class="CustomReminderExample.CustomReminderWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxschc="http://schemas.devexpress.com/winfx/2008/xaml/scheduling/common"
xmlns:dxmvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
xmlns:local="clr-namespace:CustomReminderExample"
Height="320" MinHeight="320"
Width="360" MinWidth="360"
Title="Alerts">
<Window.Resources>
<DataTemplate x:Key="ListBoxItemTemplate">
<Grid MinWidth="150">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="140" />
</Grid.ColumnDefinitions>
<Image
Margin="0,0,5,0"
RenderOptions.BitmapScalingMode="NearestNeighbor"
Source="{dx:DXImage Image=Today_16x16.png}"
Stretch="None" />
<TextBlock Grid.Column="1" Text="{Binding Reminder.Subject}" />
<TextBlock
Grid.Column="2"
Margin="5,0,0,0"
Text="{Binding TimeBeforeAppointmentStartDisplayText, UpdateSourceTrigger=PropertyChanged}"
TextAlignment="Left" />
</Grid>
</DataTemplate>
<local:TimeSpanToNumberConverter x:Key="timespanconverter" />
</Window.Resources>
<dxmvvm:Interaction.Behaviors>
<dxmvvm:CurrentWindowService ClosingCommand="{Binding WindowClosingCommand}" />
</dxmvvm:Interaction.Behaviors>
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="AUTO" />
<RowDefinition Height="*" />
<RowDefinition Height="AUTO" />
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal">
<StackPanel HorizontalAlignment="Left" Orientation="Vertical">
<TextBlock
Margin="0,0,0,5"
FontWeight="Bold"
Opacity="{Binding IsRemindersSubjectVisible, Converter={dx:BoolToVisibilityViaOpacityConverter}}"
Text="{Binding ElementName=lbReminders, Path=SelectedItem.Reminder.Subject}" />
<TextBlock x:Name="startDisplayTextBlock" Text="{Binding AppointmentStartDisplayText}" />
</StackPanel>
</StackPanel>
<dxe:ListBoxEdit
x:Name="lbReminders"
Grid.Row="1"
Margin="0,5,0,5"
MinHeight="130"
EditValue="{Binding SelectedReminders, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Grid.IsSharedSizeScope="True"
ItemsSource="{Binding TriggeredReminders}"
ItemTemplate="{StaticResource ListBoxItemTemplate}"
SelectionMode="Extended">
<dxb:BarManager.DXContextMenu>
<dxb:PopupMenu>
<dxb:PopupMenu.Items>
<dxb:BarButtonItem Command="{Binding DismissAllCommand}" Content="Dismiss All" />
<dxb:BarButtonItem
Command="{Binding OpenItemCommand}"
Content="Open"
IsEnabled="{Binding CanOpenAppointmentWindow}" />
<dxb:BarButtonItem
Command="{Binding DismissCommand}"
Content="Dismiss"
IsEnabled="{Binding CanOpenAppointmentWindow}" />
<dxb:BarButtonItem Command="{Binding SnoozeCommand}" Content="Snooze" />
</dxb:PopupMenu.Items>
</dxb:PopupMenu>
</dxb:BarManager.DXContextMenu>
</dxe:ListBoxEdit>
<StackPanel
Grid.Row="2"
HorizontalAlignment="Stretch"
Orientation="Vertical">
<TextBlock Margin="0,5,5,5" Text="Right-click for the context menu." />
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="AUTO" />
<ColumnDefinition Width="50" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Margin="0,5,5,5" Text="Select Snooze to be reminded again in" Grid.Column="0" />
<dxe:SpinEdit
x:Name="txtSnoozeTime"
Grid.Column="1"
Value="9"
EditValue="{Binding SnoozeValue, Mode=TwoWay, Converter={StaticResource timespanconverter} }"
/>
<TextBlock Margin="5,5,0,5" Text="minutes" Grid.Column="2" />
</Grid>
</StackPanel>
</Grid>
</Window>