Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单击按钮WPF MVVM后组合框绑定中断_C#_.net_Wpf_Silverlight_Mvvm - Fatal编程技术网

C# 单击按钮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>

组合框绑定在按钮单击wpf mvvm后中断。我使用交互触发器将组合框选择绑定为
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);
                    }
                }
            }