Tôi có một TextBox có giá trị gia tăng bị ràng buộc với một tài sản ViewModel:WPF giá trị TextBox không thay đổi trên OnPropertyChanged
<TextBox Name="txtRunAfter" Grid.Column="4" Text="{Binding Mode=TwoWay, Path=RunAfter}" Style="{StaticResource TestStepTextBox}"/>
Tập và nhận đang làm việc tốt cho đến khi tôi đã cố gắng để thêm một số xác nhận khi giá trị là set:
private int _runAfter = 0;
public string RunAfter
{
get
{
return _runAfter.ToString();
}
set
{
int val = int.Parse(value);
if (_runAfter != val)
{
if (val < _order)
_runAfter = val;
else
{
_runAfter = 0;
OnPropertyChanged("RunAfter");
}
}
}
}
Mặc dù OnPropertyChanged đã đạt đến (tôi đã lồng tiếng), Chế độ xem không thay đổi. Tôi có thể thực hiện công việc này bằng cách nào?
Xin cảm ơn, José Tavares
Tôi đoán đánh giá của bạn về vấn đề là chính xác, nhưng cuộc gọi điều phối không hoạt động. My UserControl được sử dụng bên trong một ứng dụng WinForm bằng cách sử dụng một ElementHost. Có thể điều này ảnh hưởng đến cuộc gọi Dispatcher? – jpsstavares
Được rồi, tôi đã thử nghiệm điều này và nó hoạt động tốt (khi bạn thoát khỏi TextBox là chế độ mặc định của liên kết sẽ không cập nhật thuộc tính cho đến khi TextBox mất tiêu điểm). Tôi đã cập nhật câu trả lời để giải thích về UpdateSourceTrigger về các ràng buộc, trong trường hợp đó là hành vi mà bạn đang thấy. Tôi không giải quyết rất nhiều với WPF được lưu trữ trong WinForms, nhưng tôi không thấy lý do tại sao điều đó sẽ ảnh hưởng đến Binding hoặc Dispatcher trong ngữ cảnh của bạn. –