1

年をリストするリストビューと、年グループを持つ別のリストビューがあります。年グループ リスト ビューは、最初のリストビューの selectchanged で ICollectionView フィルターを使用して設定されます。

グループに新しいレコードを追加したいのですが、年リスト ビューで選択したアイテムの ID が外部キーとして必要です。

XML で 2 つの静的ビューモデル リソースを宣言します。1 つはリスト、もう 1 つは新しい空のグループです。

<local:YearGroupListViewModel x:Key="YearGroupList" />
<local:YearGroupViewModel x:Key="NewYearGroup" />

他のページに新しいレコードを作成するために、新しいビューモデルをパラメーターとして add コマンドに渡すことに成功しました (年の例)。

<Button x:Name="btnSettingsYearsSaveAdd" x:Uid="btnSettingsYearsSaveAdd" 
    Content="Submit" Margin="0,49,10,0" 
    Style="{DynamicResource ButtonStyle}"
    DataContext="{StaticResource ResourceKey=YearList}"
    CommandParameter="{StaticResource ResourceKey=NewYear}" 
    Command="{Binding Path=AddCommand}" />

これは、外部キーの目的で親リストビューの選択項目 ID に依存していないレコードでうまく機能します。

したがって、この質問で言及されているマルチパラメーターパスをSOで使用しようとしています

私の問題は、パラメーターを 1 つだけ送信する場合と同じように、新しいグループ ビュー モデルをパラメーターとして渡すことができないように見えることです。

これは私が現時点でいる場所です:

XML

<Button x:Name="btnSettingsYearGroupsSaveAdd" x:Uid="btnSettingsYearGroupsSaveAdd"
    Content="Submit" Margin="0,49,10,0" 
    Style="{DynamicResource ButtonStyle}"
    DataContext="{StaticResource ResourceKey=YearGroupList}" 
    Command="{Binding Path=AddCommand}">
        <Button.CommandParameter>
            <MultiBinding Converter="{StaticResource paramConvert}">
                <Binding Path="YearGroup" 
                         ElementName="{StaticResource ResourceKey=NewYearGroup}"/>
                <Binding Path="SelectedItem" 
                         ElementName="lvwSettingsYears"/>
            </MultiBinding>
        </Button.CommandParameter>
    </Button>

静的リソース キー バインドが機能しません。私は十数種類の派生物を試しましたが、すべて失敗しました。

指示

public void OnExecute(object parameter)
    {
        var values = (object[])parameter;
        YearGroupViewModel newYearGroup = values[0] as YearGroupViewModel;
        yearID = (Int32)values[1];
    }

誰もこれを以前にやったことがありますか?どうもありがとう

4

1 に答える 1

1

をバインドしようとすると、そうではSourceないと思います。ElementNameStaticResource

<Button x:Name="btnSettingsYearGroupsSaveAdd" x:Uid="btnSettingsYearGroupsSaveAdd"
        Content="Submit" Margin="0,49,10,0" 
        Style="{DynamicResource ButtonStyle}"
        DataContext="{StaticResource ResourceKey=YearGroupList}" 
        Command="{Binding Path=AddCommand}">
    <Button.CommandParameter>
        <MultiBinding Converter="{StaticResource paramConvert}">
            <Binding Path="YearGroup" 
                     Source="{StaticResource ResourceKey=NewYearGroup}"/>
            <Binding Path="SelectedItem" 
                     ElementName="lvwSettingsYears"/>
        </MultiBinding>
    </Button.CommandParameter>
</Button>
于 2013-03-16T07:55:21.787 に答える