Data Binding with Windows Forms 2.0

Series
Addison-Wesley
Author
Brian Noyes  
Publisher
Addison-Wesley
Cover
Softcover
Edition
1
Language
English
Total pages
736
Pub.-date
January 2006
ISBN13
9780321268921
ISBN
032126892X
Related Titles


Product detail

Product Price CHF Available  
9780321268921
Data Binding with Windows Forms 2.0
72.00 approx. 7-9 days

Description

“Brian Noyes' writing style easily captures your attention as he elaborates on all aspects of data binding in his book. He has a refreshingly clear and crisp delivery as he starts each chapter with a simple tour of each topic, and then leads you into practical concerns for sound practices and extensibility opportunities. Most importantly, as Brian explains approaches to data-binding architecture, patterns of usage, the value of data sets, binding controls and the rest, he always describes how he reaches his recommendations on the topic. This book is perfect for newcomers to .NET 2.0, but also for those that have some experience. Anyone who cares about data in their applications (okay, that should be almost everyone) is guaranteed to learn something new and useful by reading Brian's book.”
-Michele Leroux Bustamante, IDesign chief architect, Microsoft regional director, and MVP“Brian has saved me a lot of time. I'm writing The Hitchhiker's Guide to Visual Studio and SQL Server 2005 (7th Edition) and I'm not going to have to cover data binding nearly as deeply because Brian has done it for me. His book gets right to the meat of the subject and makes data binding look easy. I was also pleased to see that the book focuses on the misunderstood and under-applied Windows Forms architecture. It's a must-read for anyone trying to make their application more interactive and to leverage the new Visual Studio 2005 technology. I'm planning to point my readers to this resource when they need an in-depth treatment of data binding.”
-William Vaughn, president, Beta V Corporation“Data binding has finally come of age in Windows applications. Back in the Visual Studio 6.0 days, I ignored data binding completely and wrote my own repetitive code to encapsulate my business logic. With Visual Studio 2005, we finally have a robust and compelling data-binding technology. To ignore it today would make you inefficient and put you behind the curve. Brian delivers a clear and concise discussion of a core topic of development for Windows today. A combination of an easy-to-follow conversational yet technical tone, excellent examples, and solid explanations make this a must-read for any developer writing for Windows or learning to write for Windows.”
-Stephen Forte, chief technical officer, Corzen Inc.“This book provides a clear, readable, and in-depth treatment of data binding, with detailed discussions of best practices in the presentation and use of data. Brian communicates his knowledge on the mechanics of data binding to give the low-level understanding that makes all the difference when building sophisticated applications and troubleshooting difficult problems. Effective data binding can enormously reduce the amount of code in your applications and will allow new levels of sophistication in your development. Read this book.”
-Jonathan Cogley, chief executive officer, Thycotic, ASPInsider, and C# MVP“The .NET Framework 2.0, Visual Studio .NET 2005, and Windows Forms 2.0 incorporate the most powerful data-binding platform yet, and absolutely need a book like this to expose it. Brian's extensive data-binding knowledge and experience shine through as he comprehensively explores its many facets, starting with the fundamentals before tackling a wide variety of real-world scenarios. I've always thought a data-binding book was necessary, and I'm glad Brian found the time to write his.”
-Michael Weinhardt, freelance author and application developerData Binding with Windows Forms 2.0 earns a gold star and a prized place in my development book library. Brian is an exceptional teacher of technology, best practices, and technique. He continues to educate at every presentation I attend; his book carries that quality to paper. I found this book to be highly informative and full of all the important steps and examples necessary to learn this technology. In this book, Brian demonstrates a firm grasp on the concepts and I really enjoy his efforts to promote best practices at every chance. Definitively a cover-to-cover read.”
-Randy Hayes, president, Expert Network Solutions, Inc.“Brian's direct and well-organized presentation makes this much misunderstood topic finally understandable.”
-Sahil Malik, author of Pro ADO.NET 2.0 and C# MVP

Data binding is the most important part of many business applications-and one of the most difficult things to understand. Data Binding with Windows Forms 2.0 is the first book to focus on this crucial area of development. It will quickly get you up to speed on binding data sources to Windows Forms components. The book contains clear examples in C# that work with SQL Server 2000 and SQL Server 2005. Visual Basic .NET examples are available on the book's Web site.

Brian Noyes, leading consultant and speaker on .NET programming, teaches you both the theory and practice of data binding and provides numerous samples ready to run in Visual Studio 2005.

From his in-depth coverage, you'll learn how to

  • Use Visual Studio 2005 to generate a data-bound application from a database
  • Use the new Visual Studio 2005 typed data set designer, and how and why to use typed data sets and typed data adapters
  • Perform simple and complex binding of data to controls, and how to use the .NET 2.0 BindingSource
  • Use the Binding object for simple binding with automatic formatting, and how to handle binding events
  • Generate bound controls with the Visual Studio Designer, and how to use Data Sources
  • Present data with the new DataGridView control, and how to implement advanced features of the DataGridView
  • Implement custom data-bound controls in Windows Forms
  • Create custom business objects and collections that are suitable for use in data binding
  • Implement validation and error handling at the Windows Forms and data-binding levels
  • Implement data binding with ASP.NET 2.0 and the upcoming Windows Presentation Foundation (Avalon) technologies


Features

  • Much of the work done in Windows Forms involves Data Binding, as well as many of the problems
  • This is the first book to focus on the topic
  • The author has been working with the product since its pre-alpha stage
  • Fully up to date with the many changes in data binding in Windows Forms 2.0
  • Table of Contents

    Foreword xxiPreface xxiiiAcknowledgments xxxvAbout the Author xxxviiChapter 1: Building Data-Bound Applications with Windows Forms 1

    What Is Data Binding? 2

    Your First Data-Bound Windows Forms 2.0 Application 3

    Data-Binding Landscape 14

    Data Sources 15

    Data Objects and Collections 16

    DataSets or Not, That Is the Question... 18

    Data-Bound Controls 20

    Layered Application Architecture 21

    What Is a Smart Client? 27

    Where Are We? 28

    Chapter 2: Working with Typed Data Sets and Table Adapters 31

    A Quick Review of DataSets 31

    The Quest for Type Safety 34

    Typed Data Set Internals 37

    Creating Typed Data Sets 41

    Creating Typed Data Sets with the Data Set Designer 42

    Typed Data Set-Generated Code 49

    Introduction to Table Adapters 52

    Filling and Updating a Typed Data Set with a Table Adapter 56

    Connection Management 58

    Adding Transaction Support to a Table Adapter 62

    Adding Helper Data Access Methods 66

    Basing Table Adapters on Stored Procedures or Views 67

    Adding Queries to Table Adapters 69

    Creating Typed Data Sets with Command Line Tools 77

    Using Typed Data Sets in Your Code 78

    Where Are We? 79

    Chapter 3: Introducing Data Binding in Windows Forms 81

    The 40,000-Foot View of Data Binding 81

    Binding Data Collections to a Grid 86

    Binding Data Collections to Multi-Valued Controls 88

    Binding Data to Individual Controls on a Form 90

    Data Paths Within Data Sources 92

    Synchronizing Data Between Controls 96

    Smarter Data Containment 97

    Paging Through Data 99

    Master-Details Data Binding 104

    Updating Data Sources Through Data Binding 106

    Where Are We? 108

    Chapter 4: Binding Controls to Data Sources 111

    Getting to Know the BindingSource Component 111

    Simple Data Binding with Binding Sources 112

    Chaining Binding Sources for Master-Details Data Binding 116

    Navigating Data Through a Binding Source 121

    Manipulating Data Through a Binding Source 122

    Using a Binding Source as a Data Storage Container 124

    Filling a Binding Source with a Data Reader 126

    Sorting, Searching, and Filtering Presented Data with a Binding Source 128

    Monitoring the Data with Events 131

    Restricting Changes to the Data 133

    Underneath the Covers of Data Binding for Complex Types 134

    Binding an Image Column to a PictureBox Control 141

    Binding a DateTime Column to a DateTimePicker 142

    Binding a DateTime Column to a TextBox 144

    Binding a Numeric Column to a TextBox 145

    Automatic Formatting and Parsing Summary 147

    Going Beyond Built-In Type Conversion with Binding Events 148

    Handling the Format Event 154

    Handling the Parse Event 156

    Completing the Editing Process 157

    Making the User's Life Easier with AutoComplete 160

    Data Binding Lifecycle 162

    Smarter Child-Parent Data Binding 163

    Binding to Multiple Copies of Data 165

    Updating Parent Data-Bound Controls from Child Data-Bound Controls 168

    Synchronizing Many-to-Many Related Collections 172

    Where Are We? 176

    Chapter 5: Generating Bound Controls with the Visual Studio Designer 177

    Working with the Data Sources Window 177

    Adding Data Sources to a Project 179

    Choosing the Type of Data Source 180

    Adding a Database Data Source 181

    Adding a Web Service Data Source 185

    Adding an Object Data Source 186

    Generating Bound Controls from Data Sources 189

    Selecting the Bound Control Type 196

    Customizing the Bound Control Types 196

    Binding Existing Controls to Data Sources 199

    Behind the Scenes: Designer Code and Data Sources Files 202

    Other Designer Data-Binding Code Generation 205

    Setting Control Data Binding Through the Properties Window 206

    Generating Data Bindings with Smart Tags 210

    Generating Master-Details Data-Bound Controls with the Designer 214

    Where Are We? 216

    Chapter 6: Presenting Data with the DataGridView Control 217

    DataGridView Overview 218

    Basic Data Binding with the DataGridView 219

    Controlling Modifications to Data in the Grid 221

    Programmatic DataGridView Construction 222

    Custom Column Content with Unbound Columns 226

    Displaying Computed Data in Virtual Mode 233

    Using the Built-In Column Types 241

    Built-In Header Cells 255

    Handling Grid Data Edits 256

    Automatic Column Sizing 259

    Column and Row Freezing 262

    Using the Designer to Define Grids 263

    Column Reordering 266

    Defining Custom Column and Cell Types 269

    Utilizing Cell-Oriented Grid Features 277

    Formatting with Styles 281

    Where Are We? 284

    Chapter 7: Understanding Data-Binding Interfaces 285

    What Does Data Binding Have to Do with Interfaces? 286

    The IEnumerable and IEnumerator Interfaces: Supporting Iteration Through Collections 289

    The ICollection Interface: Controlling Access to a Collection 295

    The IList Interface: Enabling Data Binding 298

    The IListSource Interface: Exposing Collections of Collections 303

    Property Descriptors: Allowing Dynamic Data Item Information Discovery 305

    The ITypedList Interface: Exposing Data-Binding Properties 307

    The IBindingList Interface: Providing Rich Binding Support 310

    The IBindingListView Interface: Supporting Advanced Sorting and Filtering 323

    The ICancelAddNew Interface: Supporting Transactional Inserts in a Collection 325

    The IRaiseItemChangedEvents Interface: Providing Item Modification Notifications on Collections 327

    The IEditableObject Interface: Supporting Transactional Item Modifications 328

    The INotifyPropertyChanged Interface: Publishing Item Change Notifications 329

    The ICustomTypeDescriptor Interface: Exposing Custom Type Information 332

    The ISupportInitialize Interface: Supporting Designer Initialization 334

    The IDataErrorInfo Interface: Providing Error Information 330

    The ISupportInitializeNotification Interface: Supporting Interdependent Component Initialization 337

    The ICurrencyManagerProvider Interface: Exposing a Data Container's CurrencyManager 341

    Where Are We? 341

    Chapter 8: Implementing Custom Data-Bound Controls 343

    Extending Framework Data-Bound Controls 344

    Creating a Grouped Column DataGridView 345

    Using Custom Controls 350

    The User Control Test Container 352

    Developing Data-Bound Container Controls 353

    Building a Filtered Grid Control 354

    Adding Data-Binding Capability to a Custom Control 357

    Supporting Designer Initialization of Data Binding 359

    Specifying Binding Properties on a Control 360

    Supporting Delayed Initialization with ISupportInitialize 362

    Dynamically Determining the Properties of a Data Source 367

    Autocompleting Input in a TextBox Control 371

    Autosizing Columns in the Grid 375

    Winding Up the Filtered Grid Example 376

    Building a Custom Data-Bound Control from Scratch 379

    Building a Data-Bound Charting Control for Decision Support 379

    Coding a Data-Bound Custom Control 384

    Adding Editing Support to a Custom Data Bound Control 391

    Where Are We? 397

    Chapter 9: Implementing Custom Data-Bound Business Objects and Collections 399

    Defining and Working with Data-Bound Business Objects 400

    Defining and Working with Data-Bound Business Object Collections 405

    .NET Framework Generic Collection Classes 406

    The CustomBusinessObjects Example 408

    Setting the Textual Data-Binding Behavior of Custom Objects 415

    Supporting Transacted Object Editing with IEditableObject 416

    Supporting Object Edit Notifications with Property Change Events 420

    Supporting Object Edit Notifications with INotifyPropertyChanged 423

    Using BindingList<T> to Create Rich Object Collections 424

    Creating a Custom Collection Type Based on BindingList<T> 426

    Managing Transacted Additions to a Collection 439

    Raising Item Changed Events 441

    Adding IBindingListView Functionality 443

    Binding to Business Objects Through the Data Sources Window 453

    Where Are We? 455

    Chapter 10: Validating Data Input and Handling Errors 457

    Windows Forms Validation 458

    Handling Validation Events 459

    DataGridView Validation Events 462

    Validation Up the Control Hierarchy 463

    Displaying Validation Errors with the ErrorProvider Control 464

    DataGridView Error Displays 467

    DataGridView DataError Event 468

    Controlling Validation Behavior with the AutoValidate Property 471

    Validation down the Control Hierarchy 472

    Extended Validation Controls 474

    Capturing Data Errors on Data Sets 475

    Providing Error Information from Custom Objects with IDataErrorInfo 479

    Data Concurrency Resolution 483

    Where Are We? 484

    Appendix A: Binding to Data in ASP.NET 487

    ASP.NET Page Processing Basics 489

    Data Binding in ASP.NET 1.X 490

    Data-Binding Overview in ASP.NET 2.0 498

    Data Sources 499

    Data-Binding Expressions 508

    GridView Control 509

    DetailsView Control 512

    FormView Control 514

    Master-Details Binding 515

    Hierarchical Binding 518

    Where Are We? 519

    Appendix B: Binding Data in WinFx Applications 521

    WinFx UI Programming and Capabilities Overview 522

    Writing a Simple WinFx Application 525

    WinFx Data Binding 101 532

    Data Contexts and Data Sources 536

    What About XAML? 537

    Binding a Collection to a Grid with Templates 541

    Control Styling in WinFx 543

    Where Are We? 545

    Appendix C: Programming Windows Forms Applications 547

    Your First Windows Forms Data Application 548

    Creating Windows Forms Applications with Visual Studio 554

    Windows Forms Designer-Generated Code (New in 2.0) 563

    A Brief Tour of the Windows Forms Architecture 567

    The Dawn of .NET Execution-The Main Method 570

    Handling Control Events 574

    Displaying Other Forms 576

    Containing Forms Within a Parent Form 577

    Common Data Display Controls 578

    Creating a Custom User Control 586

    Laying Out Controls on a Form 589

    Setting Tab Order 596

    Command and Control of Your Windows Forms Applications (New in 2.0) 598

    Where Are We? 600

    Appendix D: Accessing Data with ADO.NET 601

    Relational Data Access 603

    The Ubiquitous DataSet 607

    Loading Data Sets from a File 609

    Creating a Data Set Programmatically 611

    Loading Data Sets from a Database 613

    Loading a DataTable with a DataReader 619

    Master-Details DataSets 621

    Retrieving Data with Stored Procedures 623

    Updating the Database Using Data Sets 624

    Handling Concurrency 628

    Updating with Data Sets and Stored Procedures 632

    Searching Data Sets 637

    Merging Data from Multiple Data Sets 639

    Working with Data Views 641

    Working with Transactions 643

    Scoping Transactions with System.Transactions 647

    Client-Side Transactions 650

    Data Set and Data Adapter Events 651

    Reading Data into Business Objects 654

    XML Data Access 658

    Working with the XmlDataDocument Class 659

    Working with the XPathDocument Class 663

    Loading Data into an XPathDocument 664

    Querying XML Data 665

    Navigating an XML Document 667

    Where Are We? 670

    Index 671

    Back Cover

    “Brian Noyes' writing style easily captures your attention as he elaborates on all aspects of data binding in his book. He has a refreshingly clear and crisp delivery as he starts each chapter with a simple tour of each topic, and then leads you into practical concerns for sound practices and extensibility opportunities. Most importantly, as Brian explains approaches to data-binding architecture, patterns of usage, the value of data sets, binding controls and the rest, he always describes how he reaches his recommendations on the topic. This book is perfect for newcomers to .NET 2.0, but also for those that have some experience. Anyone who cares about data in their applications (okay, that should be almost everyone) is guaranteed to learn something new and useful by reading Brian's book.”
    -Michele Leroux Bustamante, IDesign chief architect, Microsoft regional director, and MVP“Brian has saved me a lot of time. I'm writing The Hitchhiker's Guide to Visual Studio and SQL Server 2005 (7th Edition) and I'm not going to have to cover data binding nearly as deeply because Brian has done it for me. His book gets right to the meat of the subject and makes data binding look easy. I was also pleased to see that the book focuses on the misunderstood and under-applied Windows Forms architecture. It's a must-read for anyone trying to make their application more interactive and to leverage the new Visual Studio 2005 technology. I'm planning to point my readers to this resource when they need an in-depth treatment of data binding.”
    -William Vaughn, president, Beta V Corporation“Data binding has finally come of age in Windows applications. Back in the Visual Studio 6.0 days, I ignored data binding completely and wrote my own repetitive code to encapsulate my business logic. With Visual Studio 2005, we finally have a robust and compelling data-binding technology. To ignore it today would make you inefficient and put you behind the curve. Brian delivers a clear and concise discussion of a core topic of development for Windows today. A combination of an easy-to-follow conversational yet technical tone, excellent examples, and solid explanations make this a must-read for any developer writing for Windows or learning to write for Windows.”
    -Stephen Forte, chief technical officer, Corzen Inc.“This book provides a clear, readable, and in-depth treatment of data binding, with detailed discussions of best practices in the presentation and use of data. Brian communicates his knowledge on the mechanics of data binding to give the low-level understanding that makes all the difference when building sophisticated applications and troubleshooting difficult problems. Effective data binding can enormously reduce the amount of code in your applications and will allow new levels of sophistication in your development. Read this book.”
    -Jonathan Cogley, chief executive officer, Thycotic, ASPInsider, and C# MVP“The .NET Framework 2.0, Visual Studio .NET 2005, and Windows Forms 2.0 incorporate the most powerful data-binding platform yet, and absolutely need a book like this to expose it. Brian's extensive data-binding knowledge and experience shine through as he comprehensively explores its many facets, starting with the fundamentals before tackling a wide variety of real-world scenarios. I've always thought a data-binding book was necessary, and I'm glad Brian found the time to write his.”
    -Michael Weinhardt, freelance author and application developerData Binding with Windows Forms 2.0 earns a gold star and a prized place in my development book library. Brian is an exceptional teacher of technology, best practices, and technique. He continues to educate at every presentation I attend; his book carries that quality to paper. I found this book to be highly informative and full of all the important steps and examples necessary to learn this technology. In this book, Brian demonstrates a firm grasp on the concepts and I really enjoy his efforts to promote best practices at every chance. Definitively a cover-to-cover read.”
    -Randy Hayes, president, Expert Network Solutions, Inc.“Brian's direct and well-organized presentation makes this much misunderstood topic finally understandable.”
    -Sahil Malik, author of Pro ADO.NET 2.0 and C# MVP

    Data binding is the most important part of many business applications-and one of the most difficult things to understand. Data Binding with Windows Forms 2.0 is the first book to focus on this crucial area of development. It will quickly get you up to speed on binding data sources to Windows Forms components. The book contains clear examples in C# that work with SQL Server 2000 and SQL Server 2005. Visual Basic .NET examples are available on the book's Web site.

    Brian Noyes, leading consultant and speaker on .NET programming, teaches you both the theory and practice of data binding and provides numerous samples ready to run in Visual Studio 2005.

    From his in-depth coverage, you'll learn how to

    • Use Visual Studio 2005 to generate a data-bound application from a database
    • Use the new Visual Studio 2005 typed data set designer, and how and why to use typed data sets and typed data adapters
    • Perform simple and complex binding of data to controls, and how to use the .NET 2.0 BindingSource
    • Use the Binding object for simple binding with automatic formatting, and how to handle binding events
    • Generate bound controls with the Visual Studio Designer, and how to use Data Sources
    • Present data with the new DataGridView control, and how to implement advanced features of the DataGridView
    • Implement custom data-bound controls in Windows Forms
    • Create custom business objects and collections that are suitable for use in data binding
    • Implement validation and error handling at the Windows Forms and data-binding levels
    • Implement data binding with ASP.NET 2.0 and the upcoming Windows Presentation Foundation (Avalon) technologies


    Author

    Brian Noyes is a software architect, trainer, writer, and speaker with IDesign (www.idesign.net), a premier .NET architecture and design consulting and training company. He has been developing software systems for more than fifteen years, speaks at many major software conferences around the world, and writes for a variety of software journals and magazines.