{"id":37809,"date":"2024-11-01T10:00:35","date_gmt":"2024-11-01T10:00:35","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=37809"},"modified":"2024-11-01T11:03:38","modified_gmt":"2024-11-01T11:03:38","slug":"wpf-course-customizing-controls-using-controltemplate-and-datatemplate","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/37809\/","title":{"rendered":"WPF Course: Customizing Controls Using ControlTemplate and DataTemplate"},"content":{"rendered":"<p>Windows Presentation Foundation (WPF) is an application development platform based on the .NET framework, providing powerful capabilities for creating GUI (Graphical User Interface). One of the advantages of WPF is the robust UI customization through data binding, styles, and templates. In this article, we will explore how to create custom controls using WPF\u2019s ControlTemplate and DataTemplate, and how to provide a more attractive user experience.<\/p>\n<h2>1. Understanding the Basic Concepts of WPF<\/h2>\n<p>WPF uses XAML (Extensible Application Markup Language) to define the UI. XAML is an XML-based language that allows for the declarative creation of the visual elements of an application. WPF offers various UI components (controls), but when we don&#8217;t like the default design, we can customize it according to our needs using ControlTemplate and DataTemplate.<\/p>\n<h2>2. Understanding ControlTemplate<\/h2>\n<p>ControlTemplate is one of the important components of WPF, defining the visual structure of a particular control. In other words, by using ControlTemplate, we can change the appearance of existing controls while keeping the functionality of that control intact. Here, we will introduce the basic structure of ControlTemplate and explain how it can be applied through actual usage examples.<\/p>\n<h3>2.1 Structure of ControlTemplate<\/h3>\n<p>ControlTemplate consists of the following basic elements:<\/p>\n<ul>\n<li><strong>Template<\/strong>: A pattern or format for creating multiple elements.<\/li>\n<li><strong>Visual Tree<\/strong>: The hierarchical structure of created UI elements.<\/li>\n<li><strong>Part<\/strong>: An element that serves a specific role within the ControlTemplate.<\/li>\n<\/ul>\n<p>The code below is an example of changing the visual structure of a Button using ControlTemplate.<\/p>\n<pre><code>&lt;Button x:Name=\"myButton\"&gt;\n    &lt;Button.Template&gt;\n        &lt;ControlTemplate TargetType=\"Button\"&gt;\n            &lt;Border Background=\"Red\"&gt;\n                &lt;ContentPresenter HorizontalAlignment=\"Center\" VerticalAlignment=\"Center\"\/&gt;\n            &lt;\/Border&gt;\n        &lt;\/ControlTemplate&gt;\n    &lt;\/Button.Template&gt;\n&lt;\/Button&gt;<\/code><\/pre>\n<h3>2.2 Example Using ControlTemplate<\/h3>\n<p>Now, let\u2019s create a custom button using ControlTemplate. The code below shows an example where the color changes every time the button is clicked.<\/p>\n<pre><code>&lt;Button x:Name=\"dynamicButton\"&gt;\n    &lt;Button.Template&gt;\n        &lt;ControlTemplate TargetType=\"Button\"&gt;\n            &lt;Border x:Name=\"buttonBorder\" Background=\"Blue\" CornerRadius=\"5\"&gt;\n                &lt;ContentPresenter HorizontalAlignment=\"Center\" VerticalAlignment=\"Center\"&gt;&lt;\/ContentPresenter&gt;\n            &lt;\/Border&gt;\n        &lt;\/ControlTemplate&gt;\n    &lt;\/Button.Template&gt;\n    &lt;Button.Style&gt;\n        &lt;Style TargetType=\"Button\"&gt;\n            &lt;EventSetter Event=\"Click\" Handler=\"DynamicButton_Click\"\/&gt;\n        &lt;\/Style&gt;\n    &lt;\/Button.Style&gt;\n&lt;\/Button&gt;<\/code><\/pre>\n<pre><code>private void DynamicButton_Click(object sender, RoutedEventArgs e)\n{\n    var border = (Border)((Button)sender).Template.FindName(\"buttonBorder\", (Button)sender);\n    border.Background = border.Background == Brushes.Blue ? Brushes.Green : Brushes.Blue;\n}<\/code><\/pre>\n<h2>3. Understanding DataTemplate<\/h2>\n<p>DataTemplate is used in WPF to define the relationship between data and UI elements. It allows UI elements to be dynamically generated through data binding, and is typically used with data-driven controls like ListBox and ComboBox. DataTemplate defines how data objects are visually represented.<\/p>\n<h3>3.1 Structure of DataTemplate<\/h3>\n<p>DataTemplate can be defined as follows:<\/p>\n<pre><code>&lt;DataTemplate&gt;\n    &lt;StackPanel&gt;\n        &lt;TextBlock Text=\"{Binding Name}\"\/&gt;\n        &lt;TextBlock Text=\"{Binding Age}\"\/&gt;\n    &lt;\/StackPanel&gt;\n&lt;\/DataTemplate&gt;<\/code><\/pre>\n<p>The example above represents how to visually represent the Name and Age properties of a data object.<\/p>\n<h3>3.2 Creating a List Using DataTemplate<\/h3>\n<p>When displaying a data collection using ListBox, you can customize each item using DataTemplate. The code below is an example of a ListBox displaying a list of Employee objects along with a DataTemplate.<\/p>\n<pre><code>&lt;ListBox x:Name=\"employeeListBox\"&gt;\n    &lt;ListBox.ItemTemplate&gt;\n        &lt;DataTemplate&gt;\n            &lt;StackPanel Orientation=\"Horizontal\"&gt;\n                &lt;TextBlock Text=\"{Binding Name}\" Margin=\"10\"\/&gt;\n                &lt;TextBlock Text=\"{Binding Position}\" Margin=\"10\"\/&gt;\n            &lt;\/StackPanel&gt;\n        &lt;\/DataTemplate&gt;\n    &lt;ListBox.ItemTemplate&gt;\n&lt;\/ListBox&gt;<\/code><\/pre>\n<h2>4. Comparison of ControlTemplate and DataTemplate<\/h2>\n<p>ControlTemplate and DataTemplate are both used in WPF for customizing the UI, but they serve different purposes.<\/p>\n<ul>\n<li><strong>ControlTemplate<\/strong>: Defines the appearance of a specific control while maintaining its functions and behaviors.<\/li>\n<li><strong>DataTemplate<\/strong>: Defines the visual representation of data objects, serving as a link between data and UI.<\/li>\n<\/ul>\n<h2>5. Key TIPS<\/h2>\n<p>Here are some useful tips when using ControlTemplate and DataTemplate:<\/p>\n<ul>\n<li>Properly set the naming and binding for each element to easily reference them in code.<\/li>\n<li>Use DataTemplateSelector to apply various DataTemplates based on complex data structures.<\/li>\n<li>Use styles to maintain a consistent theme while applying them to various controls.<\/li>\n<\/ul>\n<h2>6. Practical Project<\/h2>\n<p>To understand and utilize ControlTemplate and DataTemplate, let\u2019s carry out a simple practical project. In this practical, we will create an application to display a list of students.<\/p>\n<h3>6.1 Project Setup<\/h3>\n<p>Open Visual Studio and create a new WPF application project. Create a `Student` class and set the Students list as the data source.<\/p>\n<pre><code>public class Student\n{\n    public string Name { get; set; }\n    public int Age { get; set; }\n    public string Major { get; set; }\n}<\/code><\/pre>\n<h3>6.2 UI Composition<\/h3>\n<pre><code>&lt;Window x:Class=\"StudentList.MainWindow\"\n    xmlns=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\/presentation\"\n    xmlns:x=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\"\n    Title=\"Student List\" Height=\"350\" Width=\"525\"&gt;\n\n    &lt;Grid&gt;\n        &lt;ListBox x:Name=\"StudentListBox\"&gt;\n            &lt;ListBox.ItemTemplate&gt;\n                &lt;DataTemplate&gt;\n                    &lt;StackPanel Orientation=\"Horizontal\"&gt;\n                        &lt;TextBlock Text=\"{Binding Name}\" Margin=\"10\"\/&gt;\n                        &lt;TextBlock Text=\"{Binding Age}\" Margin=\"10\"\/&gt;\n                        &lt;TextBlock Text=\"{Binding Major}\" Margin=\"10\"\/&gt;\n                    &lt;\/StackPanel&gt;\n                &lt;\/DataTemplate&gt;\n            &lt;\/ListBox.ItemTemplate&gt;\n        &lt;\/ListBox&gt;\n    &lt;\/Grid&gt;\n&lt;\/Window&gt;<\/code><\/pre>\n<h3>6.3 Writing the Code Behind<\/h3>\n<pre><code>public partial class MainWindow : Window\n{\n    public ObservableCollection&lt;Student&gt; Students { get; set; }\n\n    public MainWindow()\n    {\n        InitializeComponent();\n        Students = new ObservableCollection&lt;Student&gt;\n        {\n            new Student { Name = \"Alice\", Age = 20, Major = \"Computer Science\" },\n            new Student { Name = \"Bob\", Age = 22, Major = \"Mathematics\" },\n            new Student { Name = \"Charlie\", Age = 21, Major = \"Physics\" }\n        };\n        StudentListBox.ItemsSource = Students;\n    }\n}<\/code><\/pre>\n<h2>Conclusion<\/h2>\n<p>Through this article, we explored control customization using WPF&#8217;s ControlTemplate and DataTemplate. By using these templates, we can construct powerful and flexible UIs that provide a better user experience. Understanding how to adjust DataTemplate based on various data structures, and how to change the visual elements of controls through ControlTemplate is essential for WPF developers.<\/p>\n<p>Based on the content explained here, you should be able to customize essential UI components in your WPF application. May the experience gained from this practical session have a positive impact on your development journey.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Windows Presentation Foundation (WPF) is an application development platform based on the .NET framework, providing powerful capabilities for creating GUI (Graphical User Interface). One of the advantages of WPF is the robust UI customization through data binding, styles, and templates. In this article, we will explore how to create custom controls using WPF\u2019s ControlTemplate and &hellip; <a href=\"https:\/\/atmokpo.com\/w\/37809\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;WPF Course: Customizing Controls Using ControlTemplate and DataTemplate&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[117],"tags":[],"class_list":["post-37809","post","type-post","status-publish","format-standard","hentry","category-wpf-programming"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>WPF Course: Customizing Controls Using ControlTemplate and DataTemplate - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/37809\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WPF Course: Customizing Controls Using ControlTemplate and DataTemplate - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Windows Presentation Foundation (WPF) is an application development platform based on the .NET framework, providing powerful capabilities for creating GUI (Graphical User Interface). One of the advantages of WPF is the robust UI customization through data binding, styles, and templates. In this article, we will explore how to create custom controls using WPF\u2019s ControlTemplate and &hellip; \ub354 \ubcf4\uae30 &quot;WPF Course: Customizing Controls Using ControlTemplate and DataTemplate&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/37809\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T10:00:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:03:38+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/37809\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37809\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"WPF Course: Customizing Controls Using ControlTemplate and DataTemplate\",\"datePublished\":\"2024-11-01T10:00:35+00:00\",\"dateModified\":\"2024-11-01T11:03:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37809\/\"},\"wordCount\":647,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"WPF Programming\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/37809\/\",\"url\":\"https:\/\/atmokpo.com\/w\/37809\/\",\"name\":\"WPF Course: Customizing Controls Using ControlTemplate and DataTemplate - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T10:00:35+00:00\",\"dateModified\":\"2024-11-01T11:03:38+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37809\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/37809\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/37809\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WPF Course: Customizing Controls Using ControlTemplate and DataTemplate\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"WPF Course: Customizing Controls Using ControlTemplate and DataTemplate - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/atmokpo.com\/w\/37809\/","og_locale":"ko_KR","og_type":"article","og_title":"WPF Course: Customizing Controls Using ControlTemplate and DataTemplate - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Windows Presentation Foundation (WPF) is an application development platform based on the .NET framework, providing powerful capabilities for creating GUI (Graphical User Interface). One of the advantages of WPF is the robust UI customization through data binding, styles, and templates. In this article, we will explore how to create custom controls using WPF\u2019s ControlTemplate and &hellip; \ub354 \ubcf4\uae30 \"WPF Course: Customizing Controls Using ControlTemplate and DataTemplate\"","og_url":"https:\/\/atmokpo.com\/w\/37809\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T10:00:35+00:00","article_modified_time":"2024-11-01T11:03:38+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"5\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/37809\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/37809\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"WPF Course: Customizing Controls Using ControlTemplate and DataTemplate","datePublished":"2024-11-01T10:00:35+00:00","dateModified":"2024-11-01T11:03:38+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/37809\/"},"wordCount":647,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["WPF Programming"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/37809\/","url":"https:\/\/atmokpo.com\/w\/37809\/","name":"WPF Course: Customizing Controls Using ControlTemplate and DataTemplate - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T10:00:35+00:00","dateModified":"2024-11-01T11:03:38+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/37809\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/37809\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/37809\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"WPF Course: Customizing Controls Using ControlTemplate and DataTemplate"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37809","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=37809"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37809\/revisions"}],"predecessor-version":[{"id":37810,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37809\/revisions\/37810"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=37809"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=37809"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=37809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}