0

私は現在、リストビューで選択したアイテムからビューモデルに ID を渡す必要がある WinRT でアプリケーションを作成しています。リストビューには項目ソースとして Observable コレクションがあるため、リストビュー内の項目ごとに異なる ID が存在します。

私のXamlコードはこれに似ています

    <ListView Grid.Column="0" ItemsSource="{Binding VacationOverviewDisplay}"  >
                <WinRtBehaviors:Interaction.Behaviors>
                    <Win8nl_Behavior:EventToCommandBehavior Event="SelectionChanged"   
                                              Command="DetailsCommand"
                                              CommandParameter="{Binding Path=DontKnow, Mode=TwoWay}"/>
                </WinRtBehaviors:Interaction.Behaviors>
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Vertical" >
                            <StackPanel Orientation="Horizontal">
                                <TextBlock VerticalAlignment="Center" FontWeight="Bold" FontFamily="Segoe UI" Text="{Binding VacationStart, Converter={StaticResource StringFormatConverter}, ConverterParameter='{}{0:dd MMM yyyy}' }" Margin="20,0,0,0"></TextBlock>
                                <TextBlock VerticalAlignment="Center" FontWeight="Bold" FontFamily="Segoe UI" Text="{Binding VacationEnd, Converter={StaticResource StringFormatConverter}, ConverterParameter='{}{0:dd MMM yyyy}' }" Margin="20,0,0,0"></TextBlock>
                                <TextBlock x:Name="id" VerticalAlignment="Center" FontWeight="Bold" FontFamily="Segoe UI" Text="{Binding VacationRequestId}" Margin="20,0,0,0"></TextBlock>
                            </StackPanel>
                            <TextBlock Text="{Binding StatusView}" Margin="50,0,0,0"></TextBlock>
                            <StackPanel Orientation="Horizontal">
                                <TextBlock Text="Title: " Margin="50,0,0,0"></TextBlock>
                                <TextBlock FontStyle="Italic" Text="{Binding VacationCommentUser}" Margin="5,0,0,0"></TextBlock>
                            </StackPanel>
                        </StackPanel>
                    </DataTemplate>
                </ListView.ItemTemplate>

            </ListView>

WinRTBehaviors を使用して EventToCommand の動作を模倣していますが、特定のパラメーターをリストビュー内の項目からビューモデルに戻す方法がわかりません。Mvvm については、MvvmLight を使用しています。

4

4 に答える 4

3

ビューモデルにプロパティを作成し、次のようにリストビューのSelectedItemにバインドするだけです。

SelectedItem={Binding MyProperty, Mode=TwoWay}

それで全部です。ユーザーが値を変更するたびに、プロパティが更新されます。

于 2013-02-28T09:34:28.153 に答える
0
CommandParameter="{Binding ElementName=MyListBox, Path=SelectedItem}"

(ListBoxにx:Name値を指定する必要があります。)

于 2013-02-28T09:34:28.153 に答える