C# 數(shù)據(jù)綁定 綁定到本地對(duì)象
可綁定到任何包含所需數(shù)據(jù)的.NET對(duì)象,只要編譯器能夠定位該對(duì)象即可。如果在使用對(duì)象的控件所在的上下文環(huán)境(即相同的XAML代碼塊)中可以找到該對(duì)象,就可通過設(shè)置綁定的ElementName屬性來指定綁定源。
請(qǐng)看對(duì)Options窗口中的ComboBox控件所做的更改:
<ComboBox HorizontalAlignment="Left" Margin="196,58,0,0" VerticalAlignment="Top"
Width="86" Name="numberOfPlayersComboBox" Selectedlndex="O"
IsEnabled="{Binding ElementName=playAgainstComputerCheck, Path=IsChecked}" >
注意IsEnabled屬性。沒有指定tme或false值,而是使用了一長(zhǎng)串用花括號(hào)括起來的文本。這種指定屬性值的方法稱為“標(biāo)記擴(kuò)展語法”,也是一種用于指定屬性的便捷方法。還可以使用以下寫法:
<ComboBox HorizontalAlignment="Left" Margin="196,58,0,0"
VerticalAlignment="Top" Width="86" Name="numberOfPlayersComboBox"
SelectedIndex="0" >
<ComboBox.IsEnabled>
<Binding ElementName="playAgainstComputerCheck"
Path="IsChecked" />
</ComboBox.IsEnabled>
上面兩段示例代碼都可將綁定源設(shè)罝為playAgainstComputerCheck復(fù)選框a源屬性是通過Path指定的 IsChecked 屬性。
綁定R標(biāo)被設(shè)置為IsEnabled屬性。兩段示例代碼都通過將綁定指定為該屬性的內(nèi)容來完成這種設(shè)置,只不過使用了兩種不同的語法而己。最后,由于在ComboBox上進(jìn)行綁定,因此也就隱式指定了綁定目標(biāo).
這一綁定關(guān)系可以讓ComboBox的IsEnabled屬性隨著CheckBox的IsChecked屬性值自動(dòng)進(jìn)行設(shè)置或清除。結(jié)果,我們沒有使用任何代碼,就可以在用戶更改CheckBox的值時(shí)啟用和禁用ComboBox。
點(diǎn)擊加載更多評(píng)論>>