"> ">
Download presentation
Presentation is loading. Please wait.
Published byJaylen Halliwill Modified over 9 years ago
5
Person Vehicle Calendar People Vehicles Tax Orders Shipping Schedules Presentation logic Not reusable EF POCO XML WCF SQL Server Oracle Telco Switches Web Services Media Streams Web Services REST JSON RIA Appointments
6
Person Vehicle Calendar People Vehicles Tax Orders Shipping Schedules EF POCO XML WCF SQL Server Oracle Telco Switches Web Services Media Streams Web Services REST JSON RIA Aggregation of data & services for your presentation logic
11
<Setter Property="Foreground" Source={StaticResource MyAppStyles}, Value="{Binding ForegroundColor}" <ResourceDictionary xmlns:stylesNS="clr-namespace:MyProject.Styles">
12
Binding In Style Setters Implicit DataTemplates RelativeSource Ancestor Bindings Databinding Debugging Custom Markup Extensions DataContextChanged Event UpdateSourceTrigger WCF RIA Services Enhancements Text, Printing & Media
13
<ListBox ItemsSource="{Binding States}“ ItemTemplate="{StaticResource StatesDataTemplate}“/> <ListBox ItemsSource="{Binding Vehicles}“ ItemTemplate="{StaticResource VehicleDataTemplate}"/> DataType="models:Vehicle"> <ListBox ItemsSource="{Binding States}“ ItemTemplate="{StaticResource StatesDataTemplate}"/> DataType=“models:State">
15
namespace SLInsurance. Views { public partial class AppointmentView : UserControl {... this.DataContext = new ViewModels. AppointmentViewModel();
16
<TextBlock Text="{Binding StateName}" Visibility="{Binding IsDropDownOpen, RelativeSource={RelativeSource FindAncestor AncestorType=ComboBox}, Converter={StaticResource BoolToVisibilityConverter} }"/>
17
Binding In Style Setters Implicit DataTemplates RelativeSource Ancestor Bindings Databinding Debugging Custom Markup Extensions DataContextChanged Event UpdateSourceTrigger WCF RIA Services Enhancements Text, Printing & Media
18
((System.Windows.Data.Debugging.BindingDebugState)BindingState).Error != null
19
Binding In Style Setters Implicit DataTemplates RelativeSource Ancestor Bindings Databinding Debugging Custom Markup Extensions DataContextChanged Event UpdateSourceTrigger WCF RIA Services Enhancements Text, Printing & Media
20
public partial class Appointments : UserControl { private void OnAppointmentsListbox_SelectionChanged( object sender, SelectionChangedEventArgs e ){ this.DataService.GetClaimById( GetClaimsCallback, ((AdjusterAppointment) (this.appointmentsListbox.SelectedItem)).Claim_Id); } private void GetClaimsCallback( ObservableCollection claims) { this. AppoinmentsListBox.Items.Add(claims[0]); <ListBox x:Name="appointmentsListbox" ItemsSource="{Binding Appointments}" SelectionChanged="OnAppointmentsListbox_SelectionChanged"> public void GetClaimById( Action > callback, string claim_Id ) { var query = DataContext.GetClaimByIdQuery( claim_Id ); _getClaimCallback = callback; _claimLoadOperation = DataContext.Load (query); …
21
public class MethodInvoke Extension : IMarkupExtension { // Properties Exposed in XAML as Intellisense Love public String Method { get; set; } // Invoked by the XAML Parser @ runtime public object ProvideValue(IServiceProvider serviceProvider) { <UserControl x:Class=“ AppointmentsView " xmlns:MyUtils="clr-namespace:SLInsurance;assembly=SLInsurance">... <ComboBox Name=“appointmentsListBox" SelectionChanged="{MyUtils:MethodInvoke Method=OnAppointmentChanged}"
22
public partial class AppointmentsViewModel { private void OnAppointmentChanged( ) { this.DataService.GetClaimById( GetClaimsCallback, this.SelectedAppointment.Claim_Id ); } private void GetClaimsCallback( ObservableCollection claims ) { this.SelectedClaim = claims[0]; public void GetClaimById( Action > callback, string claim_Id ) { var query = DataContext.GetClaimByIdQuery( claim_Id ); _getClaimCallback = callback; _claimLoadOperation = DataContext.Load (query); … <ListBox x:Name="appointmentsListbox" ItemsSource="{Binding Appointments}" SelectionChanged="{helpers:MethodInvoke Method=OnAppointmentChanged}”>
23
Binding In Style Setters Implicit DataTemplates RelativeSource Ancestor Bindings Databinding Debugging Custom Markup Extensions DataContextChanged Event UpdateSourceTrigger WCF RIA Services Enhancements Text, Printing & Media
24
this.DataContextChanged += View_DataContextChanged; … void View_DataContextChanged( object sender, DependencyPropertyChangedEventArgs e) { INotifyPropertyChanged customer; customer = e.OldValue as INotifyPropertyChanged; if (customer != null) customer.PropertyChanged -= customer_PropertyChanged; customer = e.NewValue as INotifyPropertyChanged; if (customer != null) customer.PropertyChanged += customer_PropertyChanged; }
25
Binding In Style Setters Implicit DataTemplates RelativeSource Ancestor Bindings Databinding Debugging Custom Markup Extensions DataContextChanged Event UpdateSourceTrigger WCF RIA Services Enhancements Text, Printing & Media
26
private void vinTextBox_TextChanged( object sender, TextChangedEventArgs e ) { Helpers.VinCarInfo carInfo = Helpers.VINParser.Parse(vinTextBox.Text); this.vehicleYearsAutoComplete.Text = carInfo.Year.Value.ToString(); this.vehicleMakeAutoComplete.Text = carInfo.Make; this.vehicleModelComboBox.SelectedValue = carInfo.Model; <TextBox Name="vinTextBox" Text="{Binding SelectedClaim.InsuredVIN, Mode=TwoWay}" TextChanged="vinTextBox_TextChanged" public void GetVehicleMakes(Action > callback, int year) { _getVehicleMakesCallback = callback; this.SearchServiceClient.GetVehicleMakesCompleted += OnGetVehicleMakesCompleted; this.SearchServiceClient.GetVehicleMakesAsync(year); } public void LoadVehicleYears() { this.DataService.GetVehicleYears(GetVehicleYearsCallback); } public void LoadVehicleMakes(Nullable year) { if (year.HasValue) { this.DataService.GetVehicleMakes(GetVehicleMakessCallback, year.Value); … public void LoadVehicleModels(Nullable year, string make) { if (year.HasValue) { this.DataService.GetVehicleModels(GetVehicleModelssCallback, year.Value, make);
28
<TextBox Name="vinTextBox" Text="{ Binding SelectedClaim.InsuredVIN, Mode=TwoWay}" UpdateSourceTrigger=PropertyChanged}" public void GetVehicleMakes(Action > callback, int year) { _getVehicleMakesCallback = callback; this.SearchServiceClient.GetVehicleMakesCompleted += OnGetVehicleMakesCompleted; this.SearchServiceClient.GetVehicleMakesAsync(year); void OnClaimPropertyChanged (object sender, System.ComponentModel.PropertyChangedEventArgs e) { switch ( e.PropertyName ) { case "InsuredVIN" : ParseVIN(); break; … private void ParseVIN () { Helpers.VinCarInfo carInfo = Helpers.VINParser.Parse(this.SelectedClaim.InsuredVIN); this.SelectedClaim.Insured Year = carInfo.Year; this.SelectedClaim.Insured Make = carInfo.Make; this.SelectedClaim.Insured Model = carInfo.Model; …
29
Binding In Style Setters Implicit DataTemplates RelativeSource Ancestor Bindings Databinding Debugging Custom Markup Extensions DataContextChanged Event UpdateSourceTrigger WCF RIA Services Enhancements Text, Printing & Media
31
Complex Types (SP1) Custom Client Code Gen(SP1) Custom Client Code Gen(SP1) DateTimeOffset MVVM Support EF Code First (coming soon) EF Code First (coming soon)
32
Binding In Style Setters Implicit DataTemplates RelativeSource Ancestor Bindings Databinding Debugging Custom Markup Extensions DataContextChanged Event UpdateSourceTrigger WCF RIA Services Enhancements Text, Printing & Media
33
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vivamus enim dolor, molestie at auctor id, auctor ultrices nisi. Curabitur urna lorem, luctus hendrerit dapibus quis, facilisis sed orci. Aliquam nunc massa, placerat id pretium eget, luctus sit amet diam. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque fermentum neque at nisl bibendum cursus. Aliquam sollicitudin elit eu nunc placerat et pulvinar mauris condimentum. Donec sed sapien elit, vel condimentum justo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut ut odio nunc. Maecenas vitae quam urna. Nulla a ante imperdiet sem tincidunt porta. Donec est tellus, imperdiet eget ullamcorper eu, laoreet vel lorem. Fusce ornare nisl mollis lacus cursus semper suscipit urna ultricies. Phasellus magna justo, commodo sodales auctor nec, euismod vitae purus. Vivamus dignissim feugiat tristique. Cras aliquet sapien non justo sagittis imperdiet. In a velit mauris, eu sodales magna. Fusce lectus lectus, blandit non semper vitae, cursus ut purus. Vestibulum quis aliquam augue. Morbi id est sed diam imperdiet pretium vitae a turpis. Sed vel sapien arcu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ac diam ut ante imperdiet lacinia. Integer sit amet justo sit amet tortor facilisis id sit amet augue. Etiam in risus vel erat molestie viverra. Suspendisse pellentesque bibendum sagittis. Etiam convallis leo at dui ornare eget elementum odio dictum. Integer tempus ultricies lectus. Maecenas dictum ipsum id nisl adipiscing eu iaculis tortor suscipit. Etiam sed sapien neque, in ultricies magna. Aliquam in nisl et lectus bibendum vestibulum. Donec suscipit, velit vitae convallis accumsan, tortor magna dignissim purus, sed convallis orci tortor sed sem. Cras quis est id turpis congue porta. Proin pharetra mattis nulla quis vestibulum. Ut in sapien id mauris egestas rhoncus a eget erat. Vivamus tempor tempus quam facilisis dapibus. Curabitur volutpat ipsum vitae tortor tincidunt sed malesuada urna tincidunt. Quisque porttitor, neque id malesuada faucibus, quam leo auctor nisl, quis aliquet enim ligula ut odio. Etiam vel turpis magna. Cras iaculis est sem. Pellentesque malesuada, libero eu tempor tempor, tellus ipsum dignissim sapien, id facilisis augue ipsum vitae quam. Cras quis imperdiet leo. In orci purus, placerat ac ultricies in, elementum vitae turpis. Nunc lectus sapien, sagittis id luctus ut, hendrerit ut massa. Sed purus sapien, pharetra id faucibus nec, semper id lacus. Phasellus et lectus leo, eget adipiscing lorem. Donec fermentum lacus dolor. Etiam laoreet tristique nisi, sit amet convallis nunc lacinia et. Integer aliquam, magna ac porttitor congue, est libero consectetur lacus, lobortis porta orci risus nec magna. Integer sapien purus, volutpat sit amet vehicula vitae, accumsan a felis. Sed a nulla vel enim laoreet consequat. Nulla ut neque massa, at semper enim. risus nec magna. Integer sapien purus, volutpat sit amet vehicula vitae, accumsan a felis. Sed a nulla vel enim laoreet consequat. Nulla ut neque massa, at semper enim. <RichTextBox OverflowContentTarget="{Binding ElementName=overflow1}">...
38
Please provide us feedback on the beta! http://forums.silverlight.net/ Steve.Lasker@Microsoft.com http://Blogs.MSDN.com/SteveLasker
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.