This example shows how to bind the TextEdit, SpinEdit and ComboBoxEdit to data obtained from an MS Access database.
using System.Windows;
namespace DXEditors_DataBinding {
public partial class Window1 : Window {
DXEditors_DataBinding.nwindDataSet.ProductsDataTable dt;
int currentRecord;
public Window1() {
InitializeComponent();
currentRecord = 0;
dt = new nwindDataSetTableAdapters.ProductsTableAdapter().GetData();
DataContext = dt[currentRecord];
comboBoxEdit1.ItemsSource =
new nwindDataSetTableAdapters.CategoriesTableAdapter().GetData();
}
private void prevButton_Click(object sender, RoutedEventArgs e) {
currentRecord--;
UpdateData();
UpdateButtonState();
}
private void nextButton_Click(object sender, RoutedEventArgs e) {
currentRecord++;
UpdateData();
UpdateButtonState();
}
private void UpdateData() {
DataContext = dt[currentRecord];
}
private void UpdateButtonState() {
prevButton.IsEnabled = currentRecord != 0;
nextButton.IsEnabled = currentRecord != dt.Rows.Count - 1;
}
}
}
<Window xmlns:local="clr-namespace:DXEditors_DataBinding.nwindDataSetTableAdapters"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="DXEditors_DataBinding.Window1"
Height="300" Width="300"
Title="Window1">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="30" />
<RowDefinition Height="30" />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Text="Product Name: " VerticalAlignment="Center" />
<dxe:TextEdit Grid.Column="1" EditValue="{Binding ProductName}" HorizontalAlignment="Stretch"
VerticalAlignment="Center" x:Name="textEdit1" />
<TextBlock Grid.Row="1" Text="Unit Price: " VerticalAlignment="Center" />
<dxe:SpinEdit Grid.Column="1" Grid.Row="1" EditValue="{Binding UnitPrice}" x:Name="spinEdit1"
VerticalAlignment="Center" HorizontalAlignment="Stretch" />
<TextBlock Grid.Row="2" Text="Category: " VerticalAlignment="Center" />
<dxe:ComboBoxEdit ValueMember="CategoryID" DisplayMember="CategoryName"
EditValue="{Binding CategoryID}" IsTextEditable="False"
x:Name="comboBoxEdit1" Grid.Column="1" Grid.Row="2" />
<StackPanel Grid.Row="3" Grid.ColumnSpan="2" VerticalAlignment="Bottom"
HorizontalAlignment="Center" Orientation="Horizontal">
<Button Margin="3" Content="Prev" Click="prevButton_Click" IsEnabled="False"
x:Name="prevButton" />
<Button Margin="3" Content="Next" Click="nextButton_Click" x:Name="nextButton" />
</StackPanel>
</Grid>
</Window>
Imports Microsoft.VisualBasic
Imports System.Windows
Namespace DXEditors_DataBinding
Partial Public Class Window1
Inherits Window
Private dt As DXEditors_DataBinding.nwindDataSet.ProductsDataTable
Private currentRecord As Integer
Public Sub New()
InitializeComponent()
currentRecord = 0
dt = New nwindDataSetTableAdapters.ProductsTableAdapter().GetData()
DataContext = dt(currentRecord)
comboBoxEdit1.ItemsSource = _
New nwindDataSetTableAdapters.CategoriesTableAdapter().GetData()
End Sub
Private Sub prevButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
currentRecord -= 1
UpdateData()
UpdateButtonState()
End Sub
Private Sub nextButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
currentRecord += 1
UpdateData()
UpdateButtonState()
End Sub
Private Sub UpdateData()
DataContext = dt(currentRecord)
End Sub
Private Sub UpdateButtonState()
prevButton.IsEnabled = currentRecord <> 0
nextButton.IsEnabled = currentRecord <> dt.Rows.Count - 1
End Sub
End Class
End Namespace