【发布时间】:2010-08-13 12:47:14
【问题描述】:
首先,我是 Silverlight + MVVM 世界的新手。所以我会尽力向你们解释这个场景。
我的 Silverlight 4 应用程序中有以下 AutoCompleteBox,运行良好。
<myControls:AutoCompleteBox Name="acbVendorID" MinimumPrefixLength="2"
ItemsSource="{Binding VendorCodes, Mode=TwoWay}"
SelectedItem="{Binding SelectedVendorCode, Mode=TwoWay}"
ValueMemberBinding="{Binding Value}"
cmds:AutoCompletePopulating.Command="{Binding VendorID_Populating}"
cmds:AutoCompletePopulating.CommandParameter="{Binding ElementName=acbVendorID}">
现在我的要求如下:
当我从 AutoCompleteBox 中选择特定的 VendorId 时,其余的 Vendor 数据应加载到网格视图中。出于这个原因,我在我的 ViewModel 中通过以下方式实现了 SelectedVendorCode:
private KeyValue selectedVendorCode;
public KeyValue SelectedVendorCode
{
get { return selectedVendorCode; }
set
{
if (selectedVendorCode != value)
{
selectedVendorCode = value;
this.NotifyChanged("SelectedVendorCode");
if (selectedVendorCode != null)
{
this.VendorDisplayCode = selectedVendorCode.Value;
OnVendorCodeSelected(); //Sets the vendor collection property bound to the GridView
}
}
}
}
这也很好用。当用户使用向下箭头浏览 AutoCompleteBox 中的项目时会出现问题,网格视图中的数据会随着 AutoCompleteBox 的选定项目的更改而重新加载。
我想阻止这个特定的功能。我希望仅在用户在 AutoCompleteBox 中选择供应商然后按 Enter
时获取 GridView 数据我尝试使用link中提到的方法来实现这一点
当我使用向下箭头或 Enter 键时,KeyPressCommand 不会触发。大多数其他键似乎都会触发此命令。
我对此感到有些困惑。你们的任何意见都会非常有帮助。
提前致谢。
~维诺德
【问题讨论】:
标签: silverlight mvvm