请帮忙!
我在互联网上做了很多研究,但没有为我的问题找到任何解决方案。
我有食物的形式。表格上有一个网格,我可以在食物桌上导航。屏幕上有一个组合框(不在网格中),其中包含类别。组合框中填充了类别表中的类别。当我更改数据网格上的记录时,除了组合框之外,表格上更新了每个字段。
所以我的问题是:当我在网格上导航时,我需要做些什么来刷新组合框,以显示保存的类别? 在类别表中,该类别具有" id"田地和食物表中有一个" categoryid"字段。
我在xaml文件中有这个:
<ComboBox x:Name="categoryComboBox" Grid.Row="5" Grid.Column="1" Margin="3,4,20,0" Grid.ColumnSpan="3"
ItemsSource="{Binding Source={StaticResource categoryViewSource}}"
SelectedValuePath="CategoryId"
DisplayMemberPath="CatName"
SelectedItem="{Binding CategoryId, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Height="25" VerticalAlignment="Top">
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
答案 0 :(得分:0)
我可以看到你的代码中有一个小错误。我应该使用SelectedValue而不是SelectedItem。所以改变它,我认为它将正常工作。此外,您不需要像我之前建议的那样使用缩放方法。 这是一个例子:
<强> XAML 强>
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" >
<ComboBox x:Name="categoryComboBox" ItemsSource="{Binding Source={StaticResource categoryViewSource}}"
SelectedValuePath="CategoryId"
DisplayMemberPath="CatName"
SelectedValue="{Binding CategoryId, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Height="25" VerticalAlignment="Top">
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<Button Content="Change Category" Command="{Binding SelectionChangedCommand}"></Button>
</StackPanel>
<强>的DataContext 强>
public class MyComboDataContext:BaseObservableObject
{
private int _categoryId;
private ICommand _selectionChangedCommand;
public MyComboDataContext()
{
CategoryId = 1;
}
public int CategoryId
{
get { return _categoryId; }
set
{
_categoryId = value;
OnPropertyChanged();
}
}
public ICommand SelectionChangedCommand
{
get { return _selectionChangedCommand ?? (_selectionChangedCommand = new RelayCommand(SelectionChanger)); }
}
private void SelectionChanger()
{
CategoryId += 1;
if (CategoryId == 4)
CategoryId = 1;
}
}
<强>说明:强>
首先,这是一个模拟组合更新的示例。这里,每次点击按钮时,组合框选择的值都会更改。在您的示例中,类别选择应该影响组合选择的值。因此,每次选择网格类别时,都应将选定的类别ID推送到组合SelectedValue绑定到的属性中。
为了帮助您,请通过以下方式更新您的问题:
如果您需要更多帮助,请告诉我。如果我的回答有帮助,请随时将问题标记为已回答。