Windows Vista Beta | WinVistaBeta.com - Message | DataBinding a collection to a TextBox

July 03, 2008  
Subject: DataBinding a collection to a TextBox
Group: microsoft.public.windows.developer.winfx.avalon
Date: 4/2/2008 6:21:00 PM
From: =?Utf-8?B?TWFyayBNb2V5a2Vucw==?= [Email Address Protection]

To learn data binding I have a window with just 3 controls:
1. Previous Button
2. TextBox
3. Next button

My goal is to bind a collection of names to the TextBox and be able to cyle
through them with the two navigation buttons.

Here's the code I have in place for the XAML
window------------------------------------

private ListCollectionView view;

public DataNavigator()
{
InitializeComponent();
ICollection<string> names = new Data().GetJustNames();
DataContext = names;
view = (ListCollectionView)
CollectionViewSource.GetDefaultView(DataContext);
view.CurrentChanged += view_CurrentChanged;
}
void view_CurrentChanged(object sender, System.EventArgs e)
{
btnPrevious.IsEnabled = (view.CurrentPosition > 0);
btnNext.IsEnabled = (view.CurrentPosition < view.Count-1);
}
private void btnNext_Click(object sender, RoutedEventArgs e)
{
view.MoveCurrentToNext();
}
private void btnPrevious_Click(object sender, RoutedEventArgs e)
{
view.MoveCurrentToPrevious();
}
---------------------------------------------------------------------------------------------

Now I'm pretty sure the navigation is working because the buttons become
disabled correctly.

My only question is how do I set the binding to the TextBox.Text property in
XAML?

<TextBox Margin="139,56.5,169,65.5" Name="tbName" Text="{Binding Path=?}"/>

I'm not sure what the Path should be.
I don't think I have to set the source because the TextBox is within the
DataContext right?

Thanks for any insight you might be able to provide!

Back
Subject: Re: DataBinding a collection to a TextBox
Group: microsoft.public.windows.developer.winfx.avalon
Date: 4/7/2008 8:39:54 AM
From: "Emil Atanasov" [Email Address Protection]

Text="{Binding Path=CurrentItem, Mode=OneWay}"


> My only question is how do I set the binding to the TextBox.Text property
> in
> XAML?
>
> <TextBox Margin="139,56.5,169,65.5" Name="tbName" Text="{Binding
> Path=?}"/>
>
> I'm not sure what the Path should be.
> I don't think I have to set the source because the TextBox is within the
> DataContext right?



Back