2022年3月23日 星期三

[WPF] DataBinding-基礎篇

 建置一個Label,再建置一個Slider當作輸入源。


XAML:

  <Grid>

        <Grid.RowDefinitions>

            <RowDefinition/>

            <RowDefinition/>

        </Grid.RowDefinitions>

        <Label x:Name="Label1" 

               Content="Label1" 

               Grid.Row="0"

               Grid.Column="1"

              HorizontalAlignment="Center"

              VerticalAlignment="Center"

              FontSize="36"/>

        <Slider x:Name="Slider1"

                Grid.Column="1" 

                HorizontalAlignment="Center"

                Grid.Row="1" 

                VerticalAlignment="Center"

                Width="200" 

                ValueChanged="Slider1_ValueChanged" SmallChange="1" Maximum="100"/>

  </Grid>

 WPF的DataBinding分兩種,一種是寫code,一種是寫在XAML,

最大的差異是XAML能即時預覽,使用code的只能在執行後才看得出效果。

使用Code:

      public MainWindow()

        {

            InitializeComponent();

            Label1.SetBinding(ContentProperty, new Binding("Value") { Source = Slider1 });

            //欲綁定的物件.SetBinding(欲綁定的屬性, new Binding(目標的屬性名稱){Source = 目標物件});      

            //PS.欲綁定的屬性必須是DependencyProperty(命名規則=>屬性+Property)

            //Binding物件有兩個建構式,另一個用法如下

            //Label1.SetBinding(ContentProperty, new Binding() { Source = Slider1, Path = new PropertyPath("Value") });      

        }

使用XAML:

 <Label x:Name="Label1"

    Content="{Binding ElementName=Slider1, Path=Value}"

    Grid.Row="0"

    Grid.Column="1"

   HorizontalAlignment="Center"

   VerticalAlignment="Center"

   FontSize="36"/>

   //欲綁定的屬性="{Binding ElementName=現有的物件, Path=物件上的屬性}"

沒有留言:

張貼留言