因此,我将下面的ComboBox与SelectedValue绑定到下面的Property。使用以下绑定,当我设置值时,binding / RaisePropertyChanged组合将引发StackOverflow异常。
这是组合框
<ComboBox x:Name="WireType" ItemsSource="{x:Bind ViewModel.WireTypes}" SelectedValue="{x:Bind ViewModel.WireType, Mode=TwoWay}"/>
这是物业
public string WireType
{
get
{
return _wireType;
}
set
{
_wireType = value;
RaisePropertyChanged();
}
}
这是RaisePropertyChanged方法。
private void RaisePropertyChanged([CallerMemberName] string caller = "")
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(caller));
}
}
我敢肯定我以前做过。我想念什么?
最佳答案
我的灵力建议PropertyChanged
事件正在尝试设置属性值。
设置器应防止值保持不变的情况。即
set
{
if (_wireType != value) // or the appropriate comparison for your specific case
{
_wireType = value;
RaisePropertyChanged();
}
}
当然,堆栈跟踪将确认实际发生的情况。