我有一个列出年份的列表视图和另一个具有年份组的列表视图。在第一个列表视图的 selectchanged 上使用 ICollectionView 过滤器填充年份组列表视图。
我想向组中添加一条新记录,但我需要年列表视图中选定项的 ID 作为外键。
我在 XML 中声明了 2 个静态视图模型资源。一个列表和一个新的空组。
<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}" />
这适用于不依赖于父列表视图 selecteditem id 用于外键目的的记录。
我的问题是,如果只发送一个参数,我似乎无法将新组视图模型作为参数传递。
这就是我现在的位置:
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];
}
有没有人这样做过?非常感谢