WPF入門教程系列十五
(2)Binding有一個重要的屬性Mode,實現綁定中的數據流向。具體有如下幾種。成員名稱說明Default使用綁定目標的默認 Mode 值。 每個依賴項屬性的默認值都不同。 一般情況下,用戶可編輯控制項屬性(例如文本框和複選框的屬性)默認為雙向綁定,而多數其他屬性默認為單向綁定。 確定依賴項屬性綁定在默認情況下是單向還是雙向的編程方法是:使用 GetMetadata 獲取屬性的屬性元數據,然後檢查 BindsTwoWayByDefault 屬性的布爾值。OneTime當應用程序啟動或數據上下文更改時,更新綁定目標。 此綁定類型適用於以下情況:使用當前狀態的快照適合使用的或數據狀態實際為靜態的數據。 如果要從源屬性初始化具有某個值的目標屬性,並且事先不知道數據上下文,則也可以使用此綁定類型。 此綁定類型實質上是 OneWay 綁定的簡化形式,在源值不更改的情況下可以提供更好的性能。OneWay當綁定源(源)更改時,更新綁定目標(目標)屬性。 此綁定類型適用於綁定的控制項為隱式只讀控制項的情況。 例如,可以綁定到如股市代號之類的源。 或者,可能目標屬性沒有用於進行更改(例如表的數據綁定背景色)的控制項介面。 如果無需監視目標屬性的更改,則使用 OneWay 綁定模式可避免 TwoWay 綁定模式的系統開銷。OneWayToSource當目標屬性更改時更新源屬性。TwoWay導致對源屬性或目標屬性的更改可自動更新對方。 此綁定類型適用於可編輯窗體或其他完全互動式 UI 方案。(3)可通過配置觸發器,決定用戶在界面輸入的數據在什麼時候去修改數據源中的值。可以通過UpdateSourceTrigger屬性實現,具體有如下幾種值成員名稱說明Default綁定目標屬性的默認 UpdateSourceTrigger 值。 大多數依賴項屬性的默認值都為 PropertyChanged,而Text 屬性的默認值為 LostFocus。確定依賴項屬性的默認 UpdateSourceTrigger 值的編程方法是使用 GetMetadata 來獲取屬性的屬性元數據,然後檢查 DefaultUpdateSourceTrigger 屬性的值。Explicit僅在調用 UpdateSource 方法時更新綁定源。LostFocus當綁定目標元素失去焦點時,更新綁定源。PropertyChanged當綁定目標屬性更改時,立即更新綁定源。具體用法如下:<TextBox Name="itemNameTextBox" Text="{Binding Path=ItemName, UpdateSourceTrigger=Explicit}" />二、簡單的綁定接下來是本文的第一個示例,一個非常簡單的綁定示例,該示例演示如何通過綁定的方式把ListBox中選中的值顯示到 TextBlock中。首先,給ListBox添加了七個 ListBoxItem,做為ListBox的選項 。其次,把第二個 TextBlock 的 Text通過 Binding 與 ListBox 選擇項進行綁定。Binding 語法中的 ElementName 屬性指示 TextBlock 的 Text 屬性要與其綁定的控制項的名稱。Path 屬性指示我們將綁定到Text屬性上ListBox元素的屬性。具體代碼如下。<Window x:Class="WpfApp1.WindowBindData" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="WindowBindData" Height="400" Width="500"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="150"/> <RowDefinition Height="150"/> <RowDefinition Height="138*"/> </Grid.RowDefinitions> <StackPanel Grid.Row="0"> <TextBlock Width="248" Height="24" Text="股票名稱:" TextWrapping="Wrap"/> <ListBox x:Name="listStockName" Width="248" Height="56"> <ListBoxItem Content="全通教育"/> <ListBoxItem Content="大智慧"/> <ListBoxItem Content="寶鋼股份"/> <ListBoxItem Content="浦發銀行"/> <ListBoxItem Content="工商銀行"/> <ListBoxItem Content="中國建築"/> <ListBoxItem Content="中國南車"/> </ListBox> <TextBlock Width="248" Height="24" Text="你所選中的股票名稱:" /> <TextBlock Width="248" Height="24" Text="{Binding ElementName=listStockName, Path=SelectedItem.Content}"> </TextBlock> </StackPanel> </Grid> </Window>效果如下圖。
推薦閱讀:
※【棒針教程】棒針基本符號
※【專業視頻教程】(營銷)全集系列 2
※織女的福音-免費領編織基礎教程書及教程視頻
※[轉載]泡芙籃教程(一)~~
※鉤針教程----「裝飾繩」