וובמאסטר - תיכנות ובניית אתרים

מדריך WPF – שימוש ב Data Binding: כיוון זרימת המידע

arikp ,‏ מכללת סלע‏ ‏/‏ 28 יולי, 2011
F+
F-

כאמור ניתן לשלוט בכיוון זרימת המידע מאובייקט המקור לאובייקט היעד. כדי לעשות יש לשנות את התכונה Mode של אובייקט ה Binding. האפשרויות לתכונה זו הן:

  1. OneTime – הערך של תכונת המקור יועתק לתכונת היעד פעם אחת בלבד.
  2. OneWay – הערך של תכונת המקור יועתק לתכונת היעד בכל פעם שתכונת המקור תשתנה.
  3. OneWayToSource – הערך של תכונת היעד יועתק לתכונת המקור בכל פעם שתכונת היעד תשתנה.
  4. TwoWay – סנכרון דו-כיווני בין תכונת המקור לתכונת היעד. כלומר, בכל פעם שתכונת המקור תשתנה, תכונת היעד תעודכן. וכן, בכל פעם שתכונת היעד תשתנה, תכונת המקור תעודכן.

דוגמת הקוד הבאה מדגימה את ארבעת האפשרויות לתכונה Mode:

<Window x:Class="DataFlowDirections.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
Height="350"
Width="525">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>

<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>

<TextBlock Grid.Row="0"
Grid.Column="0"
Text="Mode"
FontWeight="Bold" />
<TextBlock Grid.Row="0"
Grid.Column="1"
Text="Source"
FontWeight="Bold" />
<TextBlock Grid.Row="0"
Grid.Column="2"
Text="Target"
FontWeight="Bold" />

<TextBlock Grid.Row="1"
Grid.Column="0"
Text="OneTime" />
<TextBlock Grid.Row="2"
Grid.Column="0"
Text="OneWay" />
<TextBlock Grid.Row="3"
Grid.Column="0"
Text="OneWayToSource" />
<TextBlock Grid.Row="4"
Grid.Column="0"
Text="TwoWay" />

<CheckBox x:Name="source1"
Grid.Row="1"
Grid.Column="1"
IsChecked="True" />
<CheckBox x:Name="source2"
Grid.Row="2"
Grid.Column="1"
IsChecked="True" />
<CheckBox x:Name="source3"
Grid.Row="3"
Grid.Column="1"
IsChecked="True" />
<CheckBox x:Name="source4"
Grid.Row="4"
Grid.Column="1"
IsChecked="True" />

<CheckBox x:Name="target1"
Grid.Row="1"
Grid.Column="2"
IsChecked="{Binding ElementName=source1, Path=IsChecked, Mode=OneTime}" />
<CheckBox x:Name="target2"
Grid.Row="2"
Grid.Column="2"
IsChecked="{Binding ElementName=source2, Path=IsChecked, Mode=OneWay}" />
<CheckBox x:Name="target3"
Grid.Row="3"
Grid.Column="2"
IsChecked="{Binding ElementName=source3, Path=IsChecked, Mode=OneWayToSource}" />
<CheckBox x:Name="target4"
Grid.Row="4"
Grid.Column="2"
IsChecked="{Binding ElementName=source4, Path=IsChecked, Mode=TwoWay}" />
</Grid
>
</
Window
>

מומלץ להעתיק תוכנית זו ולהתנסות בעצמכם איך כל אפשרות Mode של Binding מתנהגת.

מסך הפתיחה של תוכנית זו נראה כך:

מדריך WPF – שימוש ב Data Binding: כיוון זרימת המידע

arikp, מכללת סלע

אריק פוזננסקי הוא יועץ בכיר ומרצה בסלע. הוא השלים שני תארי B.Sc. במתמטיקה ומדעי המחשב בהצטיינות יתרה בטכניון. לאריק ידע נרחב בטכנולוגיות מיקרוסופט, כולל .NET עם C#, WPF, Silverlight, WinForms, Interop, COM/ATL, C++ Win32 ו reverse engineering.
תגיות: מדריך‏  /  פיתוח‏  /  צד לקוח‏  /  WPF‏  /  .net‏  

תגובות בפייסבוק

תגובות למאמר



עוד במדריך

תגיות פופולאריות

X
הצטרף לעמוד שלנו בפייסבוק להישאר מעודכן!
וובמאסטר © כל הזכויות שמורות