2016-04-07 5 views
1

選択した2つのリストビューを私のビューモデルにバインドするのが苦労しています。
考えられるのは、2つのリストビューと2つのボタンを持つビューで、
(複数)の選択項目を1つのリストビューから別のリストビュー(別の方法)に移動することです。バインドリストビューSelectedItems for actions

ビュー:

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*"/> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition Width="*"/> 
    </Grid.ColumnDefinitions> 
    <ListView x:Name="DuamResources" Grid.Column="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
     <ListView.View> 
      <GridView> 
       <GridViewColumn Header="Id" DisplayMemberBinding="{Binding Id}"/> 
       <GridViewColumn Header="Description" DisplayMemberBinding="{Binding Name}"/> 
      </GridView> 
     </ListView.View> 
     <ListView.GroupStyle> 
      <GroupStyle> 
       <GroupStyle.HeaderTemplate> 
        <DataTemplate> 
         <TextBlock FontWeight="Bold" FontSize="14" Text="{Binding Name}"/> 
        </DataTemplate> 
       </GroupStyle.HeaderTemplate> 
      </GroupStyle> 
     </ListView.GroupStyle> 
    </ListView> 
    <StackPanel Grid.Column="1" Orientation="Vertical" cal:Action.TargetWithoutContext="{Binding SelectedDuamResources}" VerticalAlignment="Center"> 
     <Button Content="&lt;" Width="40" Margin="5" cal:Message.Attach="AddSelectedResources($datacontext)"/> 
     <Button Content="&gt;" Width="40" Margin="5"/> 
    </StackPanel> 
    <ListView x:Name="AvailableDuamResources" Grid.Column="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
     <ListView.View> 
      <GridView> 
       <GridViewColumn Header="Id" DisplayMemberBinding="{Binding Id}"/> 
       <GridViewColumn Header="Description" DisplayMemberBinding="{Binding Name}"/> 
      </GridView> 
     </ListView.View> 
     <ListView.GroupStyle> 
      <GroupStyle HidesIfEmpty="True"> 
       <GroupStyle.HeaderTemplate> 
        <DataTemplate> 
         <TextBlock FontWeight="Bold" FontSize="14" Text="{Binding Type}"/> 
        </DataTemplate> 
       </GroupStyle.HeaderTemplate> 
      </GroupStyle> 
     </ListView.GroupStyle> 
    </ListView> 
</Grid> 

関連するのviewmodelプロパティ:

private ObservableCollection<DuamResourceInfo> availableDuamResources; 
     public ObservableCollection<DuamResourceInfo> AvailableDuamResources 
     { 
      get { return availableDuamResources; } 
      set { availableDuamResources = value; NotifyOfPropertyChange(() => AvailableDuamResources); } 
     } 

     private ObservableCollection<DuamResourceInfo> selectedDuamResources; 
     public ObservableCollection<DuamResourceInfo> SelectedDuamResources 
     { 
      get { return selectedDuamResources; } 
      set { selectedDuamResources = value; NotifyOfPropertyChange(() => SelectedDuamResources); } 
     } 

     private ObservableCollection<DuamResourceInfo> duamResources; 
     public ObservableCollection<DuamResourceInfo> DuamResources 
     { 
      get { return duamResources; } 
      set { duamResources = value; NotifyOfPropertyChange(() => DuamResources); } 
     } 

私が達成したいコード:

public void AddSelectedResources(IEnumerable<DuamResourceInfo> resources) 
{ 

} 

public void RemoveSelectedResources(IEnumerable<DuamResourceInfo> resources) 
{ 

} 

私はMVVMのためカリバーンマイクロを使用しています。私は束縛のためのいくつかの規則があることを知っていますが、私はこのシナリオに当てはまるとは確信していません。

ご協力いただきありがとうございます。

答えて

0

「バインド」ではなく「x:バインド」を使用してみましたか?過去の何らかの理由で、状況によってはどちらか一方が私のために働いていますが、両方ではありません。

関連する問題