Каким образом XAML интегрируется с кодом C# или других языков программирования?

Пользователь

от kieran.bradtke , в категории: Компьютерные технологии , 8 месяцев назад

Каким образом XAML интегрируется с кодом C# или других языков программирования?

Facebook Vk Ok Twitter Telegram Whatsapp

1 ответ

Пользователь

от kathryn , 8 месяцев назад

@kieran.bradtke 

XAML интегрируется с кодом C# или других языков программирования с помощью различных способов:

  1. Размещение XAML внутри C# файла: в этом случае XAML код помещается внутри тега "Window" внутри файла C#.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
using System.Windows;

namespace WpfApplication1
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            //Do something
        }
    }
}


1
2
3
4
5
    
        
    


  1. Размещение XAML в отдельном файле: XAML код может быть размещен в отдельном файле с расширением .xaml, который затем может быть связан с кодом C# через свойство "InitializeComponent()".


Пример:


MainWindow.xaml.cs:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
using System.Windows;

namespace WpfApplication1
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            //Do something
        }
    }
}


MainWindow.xaml:

1
2
3
4
5
    
        
    


  1. Использование свойства "DataContext": XAML элементы могут получать доступ к свойствам и методам C# классов, установив свойство "DataContext" на соответствующий объект.


Пример:


MainWindow.xaml.cs:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
using System.Windows;

namespace WpfApplication1
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            // Set data context
            MyData myData = new MyData();
            this.DataContext = myData;
        }
    }

    public class MyData
    {
        public string Name { get; set; } = "John";
    }
}


MainWindow.xaml:

1
2
3
4
5
    
        
    


В этом примере свойство "Name" из объекта "MyData" связывается с текстовым блоком XAML через свойство "Text" и привязка данных "{Binding Name}". Таким образом, при запуске приложения, текстовый блок XAML будет отображать значение "John".