RIA services et dropdownlist
Salut !
Je suis en train d'essayer de faire un Dataform avec une dropdown list et j'ai des comportements bizarre ... Je ne pensais pas que ca serait si complexe :calim2:
J'ai des objets Todo lié a un object Category par une propriété Category.
J'ai une datagrid a gauche et une dataform a droite.
Je sélectionne la 3eme ligne, je change l'objet category et la cela change aussi la category de la premiere ligne ! Comme si la dropdown était lié aux 2 objets ... Bizarre ...
Vous voyez où est le problème ?
http://ilexga.blu.livefilestore.com/...rst.png?psid=1
http://ilexga.blu.livefilestore.com/...ond.png?psid=1
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| public class TodoListViewModel : ContextViewModelBase
{
public TodoListViewModel()
{
AddCommand = new RelayCommand(Add);
Categories = new ObservableCollection<Category>();
Todos = new ObservableCollection<Todo>();
LoadCategories();
LoadTodos();
}
public ICommand AddCommand { get; protected set; }
public ICollection<Category> Categories { get; set; }
public ICollection<Todo> Todos { get; set; }
public virtual void Add()
{
var todo = new Todo();
Context.Todos.Add(todo);
Todos.Add(todo);
}
public void LoadCategories()
{
Context.Load(Context.GetCategoryQuery(),
l => Categories.Reload(l.Entities),
true);
}
private void LoadTodos()
{
Context.Load(Context.GetTodoQuery(),
l => Todos.Reload(l.Entities),
true);
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| <navigation:Page x:Class="RiaServicesSample.Views.Todos.TodoList"
Title="TodoList Page" x:Name="Root">
<navigation:Page.Resources>
<CollectionViewSource x:Key="CategorySource" Source="{Binding Categories}" />
<CollectionViewSource x:Key="TodoSource" Source="{Binding Todos}" />
</navigation:Page.Resources>
<tk:DockPanel x:Name="LayoutRoot">
<Grid tk:DockPanel.Dock="Top">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Content="Add" Command="{Binding AddCommand}" />
<Button Grid.Column="1" Content="Save" Command="{Binding SubmitCommand}" />
<Button Grid.Column="2" Content="Cancel" Command="{Binding CancelCommand}" />
</Grid>
<df:DataForm tk:DockPanel.Dock="Right" AutoGenerateFields="True"
CurrentItem="{Binding SelectedItem, ElementName=Grid, Mode=TwoWay}" CommandButtonsVisibility="All">
<df:DataForm.EditTemplate>
<DataTemplate>
<StackPanel>
<df:DataField>
<TextBox Text="{Binding Title, Mode=TwoWay}" />
</df:DataField>
<df:DataField>
<TextBox Text="{Binding Description, Mode=TwoWay}" MinHeight="200" MaxHeight="500" />
</df:DataField>
<df:DataField>
<ComboBox ItemsSource="{Binding Source={StaticResource CategorySource}}" DisplayMemberPath="Name"
SelectedItem="{Binding Category, Mode=TwoWay}"/>
</df:DataField>
</StackPanel>
</DataTemplate>
</df:DataForm.EditTemplate>
</df:DataForm>
<data:DataGrid x:Name="Grid" ItemsSource="{Binding Source={StaticResource TodoSource}}" />
</tk:DockPanel>
</navigation:Page> |
Merci.