Click here to Skip to main content
15,885,435 members
Articles / Programming Languages / C# 4.0

Silverlight Unsaved Data Detection

Rate me:
Please Sign up or sign in to vote.
4.84/5 (16 votes)
4 Oct 2010Ms-PL4 min read 84.7K   437   19  
Detect that a user has un-saved changes and popup a box that allows them to stop navigating away from the page (using ViewModel / MVVM)
  • unsaveddatadetection.zip
    • UnsavedDataDetection.sln
    • UnsavedDataDetection.Web
    • UnsavedDataDetection
      • App.xaml
      • App.xaml.cs
      • Assets
      • Bin
        • Debug
          • AppManifest.xaml
          • ar
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • bg
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • ca
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • cs
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • da
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • de
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.Navigation.resources.dll
            • System.Windows.Controls.resources.dll
            • System.Windows.Data.resources.dll
          • el
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • es
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.Navigation.resources.dll
            • System.Windows.Controls.resources.dll
            • System.Windows.Data.resources.dll
          • et
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • eu
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • fi
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • fr
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.Navigation.resources.dll
            • System.Windows.Controls.resources.dll
            • System.Windows.Data.resources.dll
          • he
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • hr
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • hu
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • id
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • it
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.Navigation.resources.dll
            • System.Windows.Controls.resources.dll
            • System.Windows.Data.resources.dll
          • ja
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.Navigation.resources.dll
            • System.Windows.Controls.resources.dll
            • System.Windows.Data.resources.dll
          • ko
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.Navigation.resources.dll
            • System.Windows.Controls.resources.dll
            • System.Windows.Data.resources.dll
          • lt
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • lv
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • ms
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • nl
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • no
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • pl
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • pt
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • pt-BR
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • ro
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • ru
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.Navigation.resources.dll
            • System.Windows.Controls.resources.dll
            • System.Windows.Data.resources.dll
          • sk
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • sl
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • sr-Cyrl-CS
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • sr-Latn-CS
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • sv
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • System.ComponentModel.DataAnnotations.dll
          • System.ComponentModel.DataAnnotations.xml
          • System.Windows.Controls.Data.dll
          • System.Windows.Controls.Data.Input.dll
          • System.Windows.Controls.Data.Input.xml
          • System.Windows.Controls.Data.xml
          • System.Windows.Controls.dll
          • System.Windows.Controls.Input.dll
          • System.Windows.Controls.Input.xml
          • System.Windows.Controls.Navigation.dll
          • System.Windows.Controls.Navigation.xml
          • System.Windows.Controls.xml
          • System.Windows.Data.dll
          • System.Windows.Data.xml
          • TestPage.html
          • th
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • tr
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • uk
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • UnsavedDataDetection.dll
          • UnsavedDataDetection.xap
          • vi
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.resources.dll
          • zh-Hans
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.Navigation.resources.dll
            • System.Windows.Controls.resources.dll
            • System.Windows.Data.resources.dll
          • zh-Hant
            • System.ComponentModel.DataAnnotations.resources.dll
            • System.Windows.Controls.Data.Input.resources.dll
            • System.Windows.Controls.Data.resources.dll
            • System.Windows.Controls.Input.resources.dll
            • System.Windows.Controls.Navigation.resources.dll
            • System.Windows.Controls.resources.dll
            • System.Windows.Data.resources.dll
        • Release
      • Classes
      • MainPage.xaml
      • MainPage.xaml.cs
      • Properties
      • UnsavedDataDetection.csproj
      • UnsavedDataDetection.csproj.user
      • ViewModels
      • Views
<controls:ChildWindow x:Class="UnsavedDataDetection.ErrorWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"    
    Title="Error">

    <Grid x:Name="LayoutRoot" Width="540">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>

        <TextBlock x:Name="IntroductoryText" Grid.Row="0" Margin="0" 
               Text="An unknown error was encountered. Please contact your administrator for more information."/>

        <StackPanel x:Name="ContentStackPanel" Grid.Row="2" Margin="0,6,0,0">

            <TextBlock x:Name="LabelText" TextWrapping="Wrap" Margin="0,0,0,2" 
                       Text="Error details"/>
            <TextBox x:Name="ErrorTextBox" Height="90" TextWrapping="Wrap" IsReadOnly="True"
                     VerticalScrollBarVisibility="Auto"/>

        </StackPanel>

        <Button x:Name="OKButton" Grid.Row="3" Click="OKButton_Click" 
            Width="75" Height="23" HorizontalAlignment="Right" Margin="0,10,0,0" 
            TabIndex="0" Content="OK"/>

    </Grid>

</controls:ChildWindow>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Microsoft Public License (Ms-PL)


Written By
Software Developer (Senior) http://ADefWebserver.com
United States United States
Michael Washington is a Microsoft MVP. He is a ASP.NET and
C# programmer.
He is the founder of
AiHelpWebsite.com,
LightSwitchHelpWebsite.com, and
HoloLensHelpWebsite.com.

He has a son, Zachary and resides in Los Angeles with his wife Valerie.

He is the Author of:

Comments and Discussions