C# 单击按钮WPF MVVM后组合框绑定中断
组合框绑定在按钮单击wpf mvvm后中断。我使用交互触发器将组合框选择绑定为C# 单击按钮WPF MVVM后组合框绑定中断,c#,.net,wpf,silverlight,mvvm,C#,.net,Wpf,Silverlight,Mvvm,组合框绑定在按钮单击wpf mvvm后中断。我使用交互触发器将组合框选择绑定为ICommand <ComboBox IsEditable="True" Text="Please Select" IsReadOnly="True" ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}"> <i:Interaction.Triggers>
ICommand
<ComboBox IsEditable="True" Text="Please Select" IsReadOnly="True" ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding SelectionChangedCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</ComboBox>
<Button Content="Save" Command="{Binding SaveCommand}" />
所选项目显示在只读文本框中,当字母表更改时,SelectionChangedCommand
绑定中断(SelectedItem
不再更新,但单击“保存”后,其将更新)
请注意,组合框的SelectedItem绑定到ViewModel的Lower属性
private string _SelectedItem;
public string SelectedItem
{
get
{
return _SelectedItem;
}
set
{
if (_SelectedItem!= value)
{
_SelectedItem= value;
RaisePropertyChanged(() => SelectedItem);
}
}
}
我想知道为什么您希望同时获得“SelectedItem”通知和InvokeCommandAction通知。在SeletedItem的setter中,您可以做您想做的事情,并将新选择握在手中 是Telerik的
SelectionChangedCommand
吗?仅凭此处提供的详细信息很难给出任何答案。你能解释一下“休息”是什么意思吗?您的意思是不再更新SelectedItem
?SelectionChangedCommand
不再执行?CanExecute
不再返回true?这可能是任何事情,我不认为我们可以告诉有限的信息提供。您可以分享您的save命令对SelectedItem
所做的操作吗?(不必是精确的计算代码,但它是否会更改SelectedItem
值?是否执行与SelectChangedCommand
或其CanExecute
?@user2951819相关的任何操作?我唯一能建议的是在调试器中运行应用程序。Monitor(借助断点),是否调用SelectionChangedCommand CanExecute/Execute方法以及它们正在执行的操作。如果未调用这些方法,请在调试器输出窗口中查找有关失败的绑定或触发器的信息。@user2951819,在该属性的setter上设置一个断点并进行调试!@user2951819,很高兴听到您解决了这个问题:)
private string _SelectedItem;
public string SelectedItem
{
get
{
return _SelectedItem;
}
set
{
if (_SelectedItem!= value)
{
_SelectedItem= value;
RaisePropertyChanged(() => SelectedItem);
}
}
}