G
Gerhard
I am posting this again at request of Microsoft concierge.
I have downloaded and installed both VS2010 RC and Silverlight 4 RC. In
testing out functionality, I built a simple RIA Business Application against
the Chinook database. I have a datagrid with the albums, another datagrid
with the tracks that ties to the selected album, and a combobox that ties to
the selected album's artist. When I do my first filter (using the built in
filter text box), all works fine, but if I change the filter, the combobox no
longer stays in sync (the datagrid does though). Can you please help? XAML
is as follows:
<navigation
age
x:Class="Chinook.Home"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
mc:Ignorable="d" d
esignWidth="640" d
esignHeight="480"
Style="{StaticResource PageStyle}"
xmlns:riaControls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.DomainServices"
xmlns:my="clr-namespace:Chinook.Web.Services"
xmlns:my1="clr-namespace:Chinook.Web.Models"
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
DataContext="{Binding}">
<sdk
age.Resources>
<CollectionViewSource x:Key="albumTracksViewSource" Source="{Binding
Path=Data.Tracks, ElementName=albumDomainDataSource1}" />
</sdk
age.Resources>
<Grid x:Name="LayoutRoot">
<ScrollViewer x:Name="PageScrollViewer" Style="{StaticResource
PageScrollViewerStyle}" Margin="-58,0,-58,-10">
<StackPanel x:Name="ContentStackPanel" Style="{StaticResource
ContentStackPanelStyle}">
<TextBlock x:Name="HeaderText" Style="{StaticResource
HeaderTextStyle}"
Text="{Binding
Path=ApplicationStrings.HomePageTitle, Source={StaticResource
ResourceWrapper}}"/>
<TextBlock x:Name="ContentText" Style="{StaticResource
ContentTextStyle}"
Text="Home page content"/>
<riaControls
omainDataSource
AutoLoad="True"
d
esignData="{d
esignInstance my1:Artist,
CreateList=true}"
Height="0" LoadedData="artistDomainDataSource_LoadedData"
Name="artistDomainDataSource"
QueryName="GetArtistsQuery"
Width="0">
<riaControls
omainDataSource.DomainContext>
<my:ChinookContext />
</riaControls
omainDataSource.DomainContext>
</riaControls
omainDataSource>
<ComboBox Height="27"
Name="comboBox1"
Width="398"
ItemsSource="{Binding}"
DataContext="{Binding
ElementName=artistDomainDataSource, Path=Data}"
DisplayMemberPath="Name"
SelectedValuePath="ArtistId"
SelectedValue="{Binding ElementName=albumDataGrid,
Path=SelectedItem.ArtistId, Mode=TwoWay}" />
<riaControls
omainDataSource
AutoLoad="False"
d
esignData="{d
esignInstance my1:Album,
CreateList=true}"
Height="0"
LoadedData="albumDomainDataSource_LoadedData"
Name="albumDomainDataSource"
QueryName="GetAlbumsByStartQuery"
Width="0">
<riaControls
omainDataSource.DomainContext>
<my:ChinookContext />
</riaControls
omainDataSource.DomainContext>
<riaControls
omainDataSource.QueryParameters>
<riaControls
arameter ParameterName="startString"
Value="{Binding ElementName=startStringTextBox, Path=Text}" />
</riaControls
omainDataSource.QueryParameters>
</riaControls
omainDataSource>
<StackPanel Height="30" Orientation="Horizontal">
<sdk:Label Content="Start String:" Margin="3"
VerticalAlignment="Center" />
<TextBox Name="startStringTextBox" Width="60" />
<Button Command="{Binding Path=LoadCommand,
ElementName=albumDomainDataSource}" Content="Load" Margin="3"
Name="albumDomainDataSourceLoadButton"
Click="albumDomainDataSourceLoadButton_Click" />
</StackPanel>
<sdk
ataGrid AutoGenerateColumns="False" Height="200"
ItemsSource="{Binding ElementName=albumDomainDataSource, Path=Data}"
Name="albumDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected"
Width="400">
<sdk
ataGrid.Columns>
<sdk
ataGridTextColumn x:Name="albumIdColumn"
Binding="{Binding Path=AlbumId}" Header="Album Id" Width="SizeToHeader" />
<sdk
ataGridTextColumn x:Name="artistIdColumn"
Binding="{Binding Path=ArtistId}" Header="Artist Id" Width="SizeToHeader" />
<sdk
ataGridTextColumn x:Name="titleColumn"
Binding="{Binding Path=Title}" Header="Title" Width="SizeToHeader" />
</sdk
ataGrid.Columns>
</sdk
ataGrid>
<riaControls
omainDataSource
AutoLoad="True"
d
esignData="{d
esignInstance my1:Track,
CreateList=true}"
Height="0"
LoadedData="trackDomainDataSource_LoadedData"
Name="trackDomainDataSource"
QueryName="GetTracksQuery"
Width="0">
<riaControls
omainDataSource.DomainContext>
<my:ChinookContext />
</riaControls
omainDataSource.DomainContext>
<riaControls
omainDataSource.FilterDescriptors>
<riaControls:FilterDescriptor
PropertyPath="AlbumId"
Operator="IsEqualTo"
IgnoredValue=""
Value="{Binding ElementName=albumDataGrid,
Path=SelectedItem.AlbumId, Mode=TwoWay}" >
</riaControls:FilterDescriptor>
</riaControls
omainDataSource.FilterDescriptors>
</riaControls
omainDataSource>
<sdk
ataGrid AutoGenerateColumns="False" Height="200"
ItemsSource="{Binding ElementName=trackDomainDataSource, Path=Data}"
Name="trackDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected"
Width="400">
<sdk
ataGrid.Columns>
<sdk
ataGridTextColumn x:Name="albumIdColumn1"
Binding="{Binding Path=AlbumId}" Header="Album Id" Width="SizeToHeader" />
<sdk
ataGridTextColumn x:Name="bytesColumn"
Binding="{Binding Path=Bytes}" Header="Bytes" Width="SizeToHeader" />
<sdk
ataGridTextColumn x:Name="composerColumn"
Binding="{Binding Path=Composer}" Header="Composer" Width="SizeToHeader" />
<sdk
ataGridTextColumn x:Name="genreIdColumn"
Binding="{Binding Path=GenreId}" Header="Genre Id" Width="SizeToHeader" />
<sdk
ataGridTextColumn x:Name="mediaTypeIdColumn"
Binding="{Binding Path=MediaTypeId}" Header="Media Type Id"
Width="SizeToHeader" />
<sdk
ataGridTextColumn x:Name="millisecondsColumn"
Binding="{Binding Path=Milliseconds}" Header="Milliseconds"
Width="SizeToHeader" />
<sdk
ataGridTextColumn x:Name="nameColumn"
Binding="{Binding Path=Name}" Header="Name" Width="SizeToHeader" />
<sdk
ataGridTextColumn x:Name="trackIdColumn"
Binding="{Binding Path=TrackId}" Header="Track Id" Width="SizeToHeader" />
<sdk
ataGridTextColumn x:Name="unitPriceColumn"
Binding="{Binding Path=UnitPrice}" Header="Unit Price" Width="SizeToHeader" />
</sdk
ataGrid.Columns>
</sdk
ataGrid>
</StackPanel>
</ScrollViewer>
</Grid>
</navigation
age>
I have downloaded and installed both VS2010 RC and Silverlight 4 RC. In
testing out functionality, I built a simple RIA Business Application against
the Chinook database. I have a datagrid with the albums, another datagrid
with the tracks that ties to the selected album, and a combobox that ties to
the selected album's artist. When I do my first filter (using the built in
filter text box), all works fine, but if I change the filter, the combobox no
longer stays in sync (the datagrid does though). Can you please help? XAML
is as follows:
<navigation
![Stick Out Tongue :P :P](/styles/default/custom/smilies/tongue.gif)
x:Class="Chinook.Home"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
mc:Ignorable="d" d
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
Style="{StaticResource PageStyle}"
xmlns:riaControls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.DomainServices"
xmlns:my="clr-namespace:Chinook.Web.Services"
xmlns:my1="clr-namespace:Chinook.Web.Models"
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
DataContext="{Binding}">
<sdk
![Stick Out Tongue :P :P](/styles/default/custom/smilies/tongue.gif)
<CollectionViewSource x:Key="albumTracksViewSource" Source="{Binding
Path=Data.Tracks, ElementName=albumDomainDataSource1}" />
</sdk
![Stick Out Tongue :P :P](/styles/default/custom/smilies/tongue.gif)
<Grid x:Name="LayoutRoot">
<ScrollViewer x:Name="PageScrollViewer" Style="{StaticResource
PageScrollViewerStyle}" Margin="-58,0,-58,-10">
<StackPanel x:Name="ContentStackPanel" Style="{StaticResource
ContentStackPanelStyle}">
<TextBlock x:Name="HeaderText" Style="{StaticResource
HeaderTextStyle}"
Text="{Binding
Path=ApplicationStrings.HomePageTitle, Source={StaticResource
ResourceWrapper}}"/>
<TextBlock x:Name="ContentText" Style="{StaticResource
ContentTextStyle}"
Text="Home page content"/>
<riaControls
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
AutoLoad="True"
d
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
CreateList=true}"
Height="0" LoadedData="artistDomainDataSource_LoadedData"
Name="artistDomainDataSource"
QueryName="GetArtistsQuery"
Width="0">
<riaControls
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
<my:ChinookContext />
</riaControls
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
</riaControls
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
<ComboBox Height="27"
Name="comboBox1"
Width="398"
ItemsSource="{Binding}"
DataContext="{Binding
ElementName=artistDomainDataSource, Path=Data}"
DisplayMemberPath="Name"
SelectedValuePath="ArtistId"
SelectedValue="{Binding ElementName=albumDataGrid,
Path=SelectedItem.ArtistId, Mode=TwoWay}" />
<riaControls
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
AutoLoad="False"
d
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
CreateList=true}"
Height="0"
LoadedData="albumDomainDataSource_LoadedData"
Name="albumDomainDataSource"
QueryName="GetAlbumsByStartQuery"
Width="0">
<riaControls
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
<my:ChinookContext />
</riaControls
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
<riaControls
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
<riaControls
![Stick Out Tongue :P :P](/styles/default/custom/smilies/tongue.gif)
Value="{Binding ElementName=startStringTextBox, Path=Text}" />
</riaControls
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
</riaControls
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
<StackPanel Height="30" Orientation="Horizontal">
<sdk:Label Content="Start String:" Margin="3"
VerticalAlignment="Center" />
<TextBox Name="startStringTextBox" Width="60" />
<Button Command="{Binding Path=LoadCommand,
ElementName=albumDomainDataSource}" Content="Load" Margin="3"
Name="albumDomainDataSourceLoadButton"
Click="albumDomainDataSourceLoadButton_Click" />
</StackPanel>
<sdk
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
ItemsSource="{Binding ElementName=albumDomainDataSource, Path=Data}"
Name="albumDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected"
Width="400">
<sdk
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
<sdk
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
Binding="{Binding Path=AlbumId}" Header="Album Id" Width="SizeToHeader" />
<sdk
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
Binding="{Binding Path=ArtistId}" Header="Artist Id" Width="SizeToHeader" />
<sdk
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
Binding="{Binding Path=Title}" Header="Title" Width="SizeToHeader" />
</sdk
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
</sdk
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
<riaControls
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
AutoLoad="True"
d
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
CreateList=true}"
Height="0"
LoadedData="trackDomainDataSource_LoadedData"
Name="trackDomainDataSource"
QueryName="GetTracksQuery"
Width="0">
<riaControls
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
<my:ChinookContext />
</riaControls
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
<riaControls
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
<riaControls:FilterDescriptor
PropertyPath="AlbumId"
Operator="IsEqualTo"
IgnoredValue=""
Value="{Binding ElementName=albumDataGrid,
Path=SelectedItem.AlbumId, Mode=TwoWay}" >
</riaControls:FilterDescriptor>
</riaControls
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
</riaControls
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
<sdk
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
ItemsSource="{Binding ElementName=trackDomainDataSource, Path=Data}"
Name="trackDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected"
Width="400">
<sdk
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
<sdk
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
Binding="{Binding Path=AlbumId}" Header="Album Id" Width="SizeToHeader" />
<sdk
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
Binding="{Binding Path=Bytes}" Header="Bytes" Width="SizeToHeader" />
<sdk
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
Binding="{Binding Path=Composer}" Header="Composer" Width="SizeToHeader" />
<sdk
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
Binding="{Binding Path=GenreId}" Header="Genre Id" Width="SizeToHeader" />
<sdk
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
Binding="{Binding Path=MediaTypeId}" Header="Media Type Id"
Width="SizeToHeader" />
<sdk
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
Binding="{Binding Path=Milliseconds}" Header="Milliseconds"
Width="SizeToHeader" />
<sdk
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
Binding="{Binding Path=Name}" Header="Name" Width="SizeToHeader" />
<sdk
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
Binding="{Binding Path=TrackId}" Header="Track Id" Width="SizeToHeader" />
<sdk
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
Binding="{Binding Path=UnitPrice}" Header="Unit Price" Width="SizeToHeader" />
</sdk
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
</sdk
![Big Grin :D :D](/styles/default/custom/smilies/grin.gif)
</StackPanel>
</ScrollViewer>
</Grid>
</navigation
![Stick Out Tongue :P :P](/styles/default/custom/smilies/tongue.gif)