2012-11-28 13 views
6

hi; có txttarget của Source và target có một ràng buộc với txtsource. khi viết một cái gì đó trong txtsource, txttarget được thay đổi. Mọi thứ đều tốt. Nhưng viết trên txttarget, tôi không thấy bất kỳ thay đổi nào tại txttarget? có chế độ TwoWay. Chế độ Twoway là không đủ? tôi có thể viết mà không sử dụng "UpdateSourceTrigger = PropertyChanged" không?Tại sao tôi sử dụng UpdateSourceTrigger = PropertyChanged, TwoWay là không đủ?


    <Grid> 
     <TextBox Height="23" HorizontalAlignment="Left" Margin="155,62,0,0" Name="txtSource" VerticalAlignment="Top" Width="120" /> 
     <TextBox Height="23" HorizontalAlignment="Left" 
       Text="{Binding ElementName=txtSource,Path=Text,Mode=TwoWay}" 
       Margin="155,113,0,0" Name="txtTarget" VerticalAlignment="Top" Width="120" /> 
    </Grid> 

Trả lời

14

txtTarget.Text được cập nhật bất cứ khi nào nguồn ràng buộc (txtSource.Text) thay đổi.

Chế độ gắn kết là TwoWay có nghĩa là các thay đổi đối với txtTarget.Text sẽ được phản ánh vào nguồn bị ràng buộc. Khi nào? Nó phụ thuộc vào tài sản Binding.UpdataSourceTrigger.

Nếu bạn muốn ràng buộc mục tiêu cập nhật ràng buộc nguồn khi thay đổi, bạn phải sử dụng Binding.UpdataSourceTrigger = OnPropertyChanged, nếu không bạn sẽ cập nhật nguồn ràng buộc khi txtTarget mất tiêu điểm (hành vi mặc định).

12

Giá trị mặc định UpdateSourceTrigger cho một TextBoxLostFocus (xem Binding.UpdateSourceTrigger). Nếu bạn không chỉ định PropertyChanged làm UpdateSourceTrigger, những gì bạn nhập vào sẽ không được ghi vào txtSource cho đến khi mất tiêu điểm (nghĩa là bạn tắt tab).

Các vấn đề liên quan