{"id":329,"date":"2015-07-04T01:14:54","date_gmt":"2015-07-03T22:14:54","guid":{"rendered":"https:\/\/gokhan-gokalp.com\/?p=329"},"modified":"2015-07-04T01:14:54","modified_gmt":"2015-07-03T22:14:54","slug":"wpf-binding-nedir-binding-modlari-ve-value-converter","status":"publish","type":"post","link":"https:\/\/gokhan-gokalp.com\/tr\/wpf-binding-nedir-binding-modlari-ve-value-converter\/","title":{"rendered":"WPF Binding Nedir, Binding Modlar\u0131 ve Value Converter"},"content":{"rendered":"<p>Uzun zamand\u0131r nas\u0131l ba\u015flasam diye d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcm WPF serisine sonunda <strong>Binding nedir<\/strong> ve <strong>Binding modlar\u0131ndan<\/strong> ba\u015flamaya karar vererek, ad\u0131m atm\u0131\u015f bulunmaktay\u0131m.<\/p>\n<h4>Nedir bu Binding?<\/h4>\n<blockquote><p>Kabaca iki \u00f6zellik aras\u0131ndaki ba\u011flant\u0131d\u0131r diyebiliriz. Biraz daha a\u00e7arsak kontroller aras\u0131nda verilerin birbirlerine ba\u011flanarak beraber \u00e7al\u0131\u015fmalar\u0131n\u0131 sa\u011flayan yap\u0131d\u0131r diyebiliriz.<\/p><\/blockquote>\n<p><a href=\"\/wp-content\/uploads\/2015\/07\/wpf-bindings.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-331 lazyload\" data-src=\"\/wp-content\/uploads\/2015\/07\/wpf-bindings.png\" alt=\"wpf-bindings\" width=\"438\" height=\"157\" data-srcset=\"https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2015\/07\/wpf-bindings.png 438w, https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2015\/07\/wpf-bindings-300x108.png 300w\" data-sizes=\"(max-width: 438px) 100vw, 438px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 438px; --smush-placeholder-aspect-ratio: 438\/157;\" \/><\/a><\/p>\n<p>Yukar\u0131daki \u015femadan da anla\u015f\u0131laca\u011f\u0131 \u00fczere baz\u0131 durumlarda <strong>OneWay<\/strong>(Tek Tarafl\u0131) kaynaktan -&gt; hedefe veya <strong>TwoWay<\/strong>(\u00c7ift Y\u00f6nl\u00fc) hedeften de-&gt;kayna\u011fa verinin aktar\u0131lmas\u0131n\u0131 isteyebiliriz.<\/p>\n<p>Hemen basit bir ka\u00e7 \u00f6rnek vermek gerekirse:<\/p>\n<ul>\n<li>Bir TextBox\u2019a girilen verinin Text \u00f6zelli\u011finin ayn\u0131 anda Label\u2019\u0131n Content \u00f6zelli\u011fine ba\u011flanmas\u0131n\u0131 isteyebilirsiniz.<\/li>\n<li>Bir TextBox\u2019a maximum 40 karakter uzunlu\u011funda metin girilmesini istiyorsunuz ve kullan\u0131c\u0131 her karakter girdi\u011finde e\u015f zamanl\u0131 olarak kalan karakter uzunlu\u011funu g\u00f6stermek isteyebilirsiniz.<\/li>\n<li>Bir ComboBox i\u00e7erisine ekledi\u011finiz renk isimlerinden yola \u00e7\u0131karak se\u00e7ilen her renk\u2019i window\u2019un background\u2019una anl\u0131k olarak bind edebilirsiniz.<\/li>\n<\/ul>\n<p>Bu gibi durumlarda binding mekanizmas\u0131 imdad\u0131n\u0131za yeti\u015fecektir.<\/p>\n<h4>Binding Modlar\u0131:<\/h4>\n<table>\n<tbody>\n<tr>\n<td width=\"367\"><strong>MOD<\/strong><\/td>\n<td width=\"367\"><strong>A\u00c7IKLAMA<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"367\">OneWay<\/td>\n<td width=\"367\"><strong>\u00a0<\/strong>Ad\u0131ndan da anla\u015f\u0131laca\u011f\u0131 \u00fczere tek tarafl\u0131 bir ba\u011flama modudur. Kaynaktan hedefe do\u011fru ba\u011flama s\u00f6z konusudur. Kaynakdaki bir de\u011fi\u015fiklik hedefin ba\u011flanan \u00f6zelli\u011fi \u00fczerinde de etki edecektir.<\/td>\n<\/tr>\n<tr>\n<td width=\"367\">TwoWay<\/td>\n<td width=\"367\"><strong>\u00a0<\/strong>Burada ise hedeften kayna\u011fa do\u011fruda \u00e7ift y\u00f6nl\u00fc bir ba\u011flama s\u00f6z konusudur.<\/td>\n<\/tr>\n<tr>\n<td width=\"367\">OneTime<\/td>\n<td width=\"367\"><strong>\u00a0<\/strong>Burada kaynaktan hedefe do\u011fru sadece bir kez ba\u011flama\u00a0i\u015flemi\u00a0s\u00f6z konusudur.<\/td>\n<\/tr>\n<tr>\n<td width=\"367\">OneWayToSource<\/td>\n<td width=\"367\"><strong>\u00a0<\/strong>Hedeften kayna\u011fa do\u011fru bir ba\u011flama s\u00f6z konusudur. Hedefdeki bir de\u011fi\u015fiklik kaynak \u00fczerinde etki edecektir.<\/td>\n<\/tr>\n<tr>\n<td width=\"367\">Default<\/td>\n<td width=\"367\"><strong>\u00a0<\/strong>Bu mod ise ba\u011f\u0131ml\u0131l\u0131k \u00f6zelli\u011fine g\u00f6re de\u011fi\u015fiklik g\u00f6stermektedir. Yani kullan\u0131c\u0131n\u0131n set edebilece\u011fi TextBox, CheckBox gibi kontroller i\u00e7in varsay\u0131lan olarak TwoWay, di\u011ferleri i\u00e7in ise OneWay dir.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Hemen bir \u00f6rnek ile devam edelim. Yukar\u0131da bahsetti\u011fimiz gibi\u00a0bir TextBox&#8217;umuz olsun ve i\u00e7erisine maksimum olarak 40 karakter girilmesini sa\u011flayal\u0131m ve bir Label \u00fczerinde\u00a0geriye kalan karakter say\u0131s\u0131n\u0131 g\u00f6sterelim.<\/p>\n<pre class=\"lang:c# decode:true\">&lt;Window x:Class=\"WPFBinding.MainWindow\"\r\n        xmlns=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\/presentation\"\r\n        xmlns:x=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\"\r\n        xmlns:local=\"clr-namespace:WPFBinding\"\r\n        Title=\"{Binding ElementName=txtInput, Path=Text}\" Height=\"150\" Width=\"270\"&gt;\r\n    &lt;Window.Resources&gt;\r\n        &lt;local:MaxLengthDisplayerConverter x:Key=\"maxLengthDisplayerConverter\" \/&gt;\r\n    &lt;\/Window.Resources&gt;\r\n    &lt;Grid&gt;\r\n        &lt;TextBox x:Name=\"txtInput\" MaxLength=\"40\"\r\n                 HorizontalAlignment=\"Left\" \r\n                 Height=\"23\" \r\n                 Margin=\"10,10,0,0\" \r\n                 TextWrapping=\"Wrap\" \r\n                 Text=\"E\u015f zamanl\u0131 bind oluyorum!\" \r\n                 VerticalAlignment=\"Top\" \r\n                 Width=\"153\"\/&gt;\r\n        &lt;Label x:Name=\"lblInput\" Content=\"{Binding ElementName=txtInput, Path=Text.Length, Converter={StaticResource maxLengthDisplayerConverter}, ConverterParameter=40}\"\r\n               HorizontalAlignment=\"Left\" \r\n               Margin=\"10,38,0,0\" \r\n               VerticalAlignment=\"Top\" \r\n               RenderTransformOrigin=\"2.974,1.962\" \r\n               Width=\"153\"\/&gt;\r\n    &lt;\/Grid&gt;\r\n&lt;\/Window&gt;<\/pre>\n<p>Tan\u0131mlam\u0131\u015f oldu\u011fumuz <strong>txtInput<\/strong> isimli kontrol\u00fcm\u00fcz\u00fcn <strong>MaxLength<\/strong> \u00f6zelli\u011fini 40 olarak belirliyoruz ve <strong>lblInput<\/strong> isimli kontrol\u00fcn ise <strong>Content<\/strong> \u00f6zelli\u011fine <strong>txtInput<\/strong>&#8216;un <strong>Text.Length<\/strong>&#8216;ini bind(ba\u011flamak) ediyoruz. Buradaki ama\u00e7:\u00a0<strong>txtInput<\/strong>&#8216;a girilen metnin uzunlu\u011funa eri\u015febilmek ve custom olarak yazd\u0131\u011f\u0131m\u0131z <strong>ValueConverter<\/strong>\u00a0arac\u0131l\u0131\u011f\u0131 ile\u00a0<strong>MaxLength<\/strong>&#8216;den kalan karakter say\u0131s\u0131n\u0131 hesaplay\u0131p\u00a0Label i\u00e7erisinde\u00a0g\u00f6sterebilmek.<\/p>\n<p>Buradaki \u00f6rne\u011fimizde <strong>txtInput<\/strong> ile <strong>lblInput<\/strong> aras\u0131nda bir <strong>OneWay<\/strong> binding modu s\u00f6z konusudur. \u00c7\u00fcnk\u00fc yukar\u0131da bahsetmi\u015ftik default olarak \u00f6zelliklerin ba\u011f\u0131ml\u0131l\u0131klar\u0131na g\u00f6re bu kod de\u011fi\u015fiklik g\u00f6stermekteydi. Burada ise <strong>txtInput<\/strong>&#8216;un <strong>Text.Length<\/strong> \u00f6zelli\u011fi ise <strong>read-only<\/strong> bir propertydir. Herhangi bir set durumu s\u00f6z konusu olmayaca\u011f\u0131 i\u00e7in default <strong>OneWay<\/strong> olacakt\u0131r.<\/p>\n<p>Binding tan\u0131mlamalar\u0131n\u0131<strong> {}<\/strong> k\u00fcme parantezleri\u00a0ile \u00a0ger\u00e7ekle\u015ftiriyoruz. E\u011fer bir ValueConverter ile u\u011fra\u015fmay\u0131p burada sadece <strong>txtInput<\/strong> i\u00e7ine girilen\u00a0metni e\u015f zamanl\u0131 olarak <strong>lblInput<\/strong> i\u00e7erisinde g\u00f6stermek isteseydik:<\/p>\n<pre class=\"lang:default decode:true \">Content=\"{Binding ElementName=txtInput, Path=Text}\"<\/pre>\n<p>dememiz yeterli olacakt\u0131. \u00a0\u00d6rnek olmas\u0131 a\u00e7\u0131s\u0131ndan dikkat ederseniz <strong>Window<\/strong>&#8216;un <strong>Title<\/strong> \u00f6zelli\u011fine <strong>txtInput<\/strong>&#8216;un <strong>Text<\/strong>&#8216;ini bind etmi\u015f durumday\u0131z.<\/p>\n<p>\u015eimdi hemen <strong>ValueConverterdeki<\/strong> kodlar\u0131m\u0131za bir g\u00f6z atal\u0131m.<\/p>\n<blockquote><p><strong>Not<\/strong>: Binding i\u015flemi yaparken Converterimizi <strong>StaticResource<\/strong> \u00fczerinden g\u00f6sterdi\u011fimiz i\u00e7in yukar\u0131daki nod \u00fczerinde <strong>Window.Resources<\/strong> taglar\u0131 aras\u0131nda tan\u0131mlamas\u0131n\u0131 yapmal\u0131y\u0131z. <strong>Code<\/strong> taraf\u0131nda olu\u015fturdu\u011fumuz <strong>converter&#8217;<\/strong>e ula\u015fabilmek i\u00e7in ise <strong>namespace<\/strong>&#8216;inide <strong>Window<\/strong>&#8216;un <strong>xmlns:local<\/strong>\u00a0attribut\u00fc ile belirtmeliyiz, benim projemin namespace&#8217;i <strong>WPFBinding<\/strong>.<\/p><\/blockquote>\n<p>MainWindow&#8217;un <strong>view code<\/strong> k\u0131sm\u0131na bakt\u0131\u011f\u0131m\u0131zda ise hesaplama i\u00e7in <strong>IValueConventer<\/strong> interface&#8217;ini implemente ederek\u00a0custom\u00a0bir ValueConverter olu\u015fturduk.<\/p>\n<pre class=\"lang:c# decode:true\">using System;\r\nusing System.Windows;\r\nusing System.Windows.Data;\r\n\r\nnamespace WPFBinding\r\n{\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ Interaction logic for MainWindow.xaml\r\n    \/\/\/ &lt;\/summary&gt;\r\n    public partial class MainWindow : Window\r\n    {\r\n        public MainWindow()\r\n        {\r\n            InitializeComponent();\r\n        }\r\n    }\r\n\r\n    public class MaxLengthDisplayerConverter : IValueConverter\r\n    {\r\n        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)\r\n        {\r\n            try\r\n            {\r\n                int maxLength = Int32.Parse(value.ToString());\r\n                int enteredLength = Int32.Parse(parameter.ToString());\r\n\r\n                return (enteredLength - maxLength);\r\n            }\r\n            catch\r\n            {\r\n                return null;\r\n            }\r\n        }\r\n\r\n        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)\r\n        {\r\n            throw new NotImplementedException();\r\n        }\r\n    }\r\n\r\n}\r\n<\/pre>\n<p>Uygulamam\u0131z\u0131n ekran g\u00f6r\u00fcnt\u00fcs\u00fc a\u015fa\u011f\u0131daki gibidir.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2015\/07\/binding-test.jpg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-346 lazyload\" data-src=\"\/wp-content\/uploads\/2015\/07\/binding-test.jpg\" alt=\"binding-test\" width=\"416\" height=\"189\" data-srcset=\"https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2015\/07\/binding-test.jpg 416w, https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2015\/07\/binding-test-300x136.jpg 300w\" data-sizes=\"(max-width: 416px) 100vw, 416px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 416px; --smush-placeholder-aspect-ratio: 416\/189;\" \/><\/a><\/p>\n<h4>Value Converter Nedir?<\/h4>\n<p>Birbirinden farkl\u0131 iki \u00f6zelli\u011fi (yukar\u0131da yapt\u0131\u011f\u0131m\u0131z gibi lblInput&#8217;un\u00a0<strong>Content<\/strong> \u00f6zelli\u011fine txtInput&#8217;un <strong>Text.Length<\/strong> \u00f6zelli\u011fine bind ettik) bind etmek istedi\u011fimizde aralar\u0131ndaki ba\u011flant\u0131y\u0131 sa\u011flayan yap\u0131d\u0131r. Aralar\u0131ndaki tip d\u00f6n\u00fc\u015f\u00fcmlerini yapabilmemize olanak sa\u011flamaktad\u0131r.<\/p>\n<p>Custom bir Value Converter implementasyonunu ve kullan\u0131m\u0131n\u0131 yukar\u0131daki \u00f6rne\u011fimizde g\u00f6rm\u00fc\u015ft\u00fck, \u015fimdide en \u00e7ok kullan\u0131lan value converterlerden <strong>BooleanToVisibilityConverter\u00a0<\/strong>kullan\u0131m\u0131na hemen bir bakal\u0131m:<\/p>\n<pre class=\"lang:c# decode:true\">&lt;Window x:Class=\"WPFBinding.MainWindow\"\r\n        xmlns=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\/presentation\"\r\n        xmlns:x=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\"\r\n        Title=\"{Binding ElementName=txtInput, Path=Text}\" Height=\"150\" Width=\"270\"&gt;\r\n    &lt;Window.Resources&gt;\r\n        &lt;BooleanToVisibilityConverter x:Key=\"booleanToVisibilityConverter\"\/&gt;\r\n    &lt;\/Window.Resources&gt;\r\n    &lt;Grid&gt;\r\n        &lt;CheckBox x:Name=\"chckShow\" Content=\"G\u00f6ster\" IsChecked=\"True\" Margin=\"10,11,-10,-11\" \/&gt;\r\n        &lt;TextBox x:Name=\"txtInput\"\r\n                 Visibility=\"{Binding ElementName=chckShow, Path=IsChecked, Converter={StaticResource booleanToVisibilityConverter}}\"\r\n                 HorizontalAlignment=\"Left\" \r\n                 Height=\"23\" \r\n                 Margin=\"10,35,0,0\" \r\n                 TextWrapping=\"Wrap\" \r\n                 Text=\"E\u015f zamanl\u0131 bind oluyorum!\" \r\n                 VerticalAlignment=\"Top\" \r\n                 Width=\"153\"\/&gt;\r\n    &lt;\/Grid&gt;\r\n&lt;\/Window&gt;<\/pre>\n<p>\u00d6rnekten basit bir \u015fekilde anla\u015f\u0131laca\u011f\u0131 \u00fczere txtInput&#8217;un <strong>Visibility<\/strong> \u00f6zelli\u011fini chckShow&#8217;un <strong>IsChecked<\/strong> \u00f6zelli\u011fine bind\u00a0yapm\u0131\u015f bulunmaktay\u0131z. Sonras\u0131nda ise ilgili farkl\u0131 \u00f6zelliklerin birbirlerine bind olabilmesi ve anlamland\u0131r\u0131labilmesi i\u00e7in haz\u0131rda bulunan\u00a0<strong>BooleanToVisibilityConverter<\/strong> yard\u0131m\u0131 ile <strong>Visibility<\/strong> \u00f6zelli\u011fini sa\u011flam\u0131\u015f bulunmaktay\u0131z.<\/p>\n<p>Bir sonraki WPF makale serimde ise INotifyPropertyChanged aray\u00fcz\u00fcn\u00fcn implementasyonu \u00fczerinde duruyor olaca\u011f\u0131m. \u015eimdilik sa\u011fl\u0131cakla kal\u0131n. :)<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Uzun zamand\u0131r nas\u0131l ba\u015flasam diye d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcm WPF serisine sonunda Binding nedir ve Binding modlar\u0131ndan ba\u015flamaya karar vererek, ad\u0131m atm\u0131\u015f bulunmaktay\u0131m. Nedir bu Binding? Kabaca iki \u00f6zellik aras\u0131ndaki ba\u011flant\u0131d\u0131r diyebiliriz. Biraz daha a\u00e7arsak kontroller aras\u0131nda verilerin birbirlerine ba\u011flanarak beraber \u00e7al\u0131\u015fmalar\u0131n\u0131 sa\u011flayan yap\u0131d\u0131r diyebiliriz. Yukar\u0131daki \u015femadan da&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/gokhan-gokalp.com\/tr\/wpf-binding-nedir-binding-modlari-ve-value-converter\/\">Devam\u0131n\u0131 okuyun<span class=\"screen-reader-text\">WPF Binding Nedir, Binding Modlar\u0131 ve Value Converter<\/span><\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[72],"tags":[76,73,75,74,77],"class_list":["post-329","post","type-post","status-publish","format-standard","hentry","category-wpf","tag-valueconverter","tag-wpf-binding","tag-wpf-binding-modlari","tag-wpf-binding-nedir","tag-wpf-value-converter","entry"],"translation":{"provider":"WPGlobus","version":"3.0.2","language":"tr","enabled_languages":["en","tr"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"tr":{"title":false,"content":false,"excerpt":false}}},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>WPF Binding Nedir, Binding Modlar\u0131 ve Value Converter - G\u00f6khan G\u00f6kalp<\/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:\/\/gokhan-gokalp.com\/wpf-binding-nedir-binding-modlari-ve-value-converter\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WPF Binding Nedir, Binding Modlar\u0131 ve Value Converter - G\u00f6khan G\u00f6kalp\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gokhan-gokalp.com\/wpf-binding-nedir-binding-modlari-ve-value-converter\/\" \/>\n<meta property=\"og:site_name\" content=\"G\u00f6khan G\u00f6kalp\" \/>\n<meta property=\"article:published_time\" content=\"2015-07-03T22:14:54+00:00\" \/>\n<meta name=\"author\" content=\"G\u00f6khan G\u00f6kalp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"G\u00f6khan G\u00f6kalp\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wpf-binding-nedir-binding-modlari-ve-value-converter\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wpf-binding-nedir-binding-modlari-ve-value-converter\\\/\"},\"author\":{\"name\":\"G\u00f6khan G\u00f6kalp\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\"},\"headline\":\"WPF Binding Nedir, Binding Modlar\u0131 ve Value Converter\",\"datePublished\":\"2015-07-03T22:14:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wpf-binding-nedir-binding-modlari-ve-value-converter\\\/\"},\"wordCount\":811,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\"},\"keywords\":[\"ValueConverter\",\"Wpf Binding\",\"Wpf Binding Modlar\u0131\",\"Wpf Binding Nedir\",\"Wpf Value Converter\"],\"articleSection\":[\"WPF\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/gokhan-gokalp.com\\\/wpf-binding-nedir-binding-modlari-ve-value-converter\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wpf-binding-nedir-binding-modlari-ve-value-converter\\\/\",\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wpf-binding-nedir-binding-modlari-ve-value-converter\\\/\",\"name\":\"WPF Binding Nedir, Binding Modlar\u0131 ve Value Converter - G\u00f6khan G\u00f6kalp\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#website\"},\"datePublished\":\"2015-07-03T22:14:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wpf-binding-nedir-binding-modlari-ve-value-converter\\\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/gokhan-gokalp.com\\\/wpf-binding-nedir-binding-modlari-ve-value-converter\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wpf-binding-nedir-binding-modlari-ve-value-converter\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/gokhan-gokalp.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WPF Binding Nedir, Binding Modlar\u0131 ve Value Converter\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#website\",\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/\",\"name\":\"G\u00f6khan G\u00f6kalp\",\"description\":\"C# &amp; Python lover\",\"publisher\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/gokhan-gokalp.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\",\"name\":\"G\u00f6khan G\u00f6kalp\",\"pronouns\":\"he\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659\",\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659\",\"contentUrl\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659\",\"caption\":\"G\u00f6khan G\u00f6kalp\"},\"logo\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659\"},\"sameAs\":[\"https:\\\/\\\/gokhan-gokalp.com\"],\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/tr\\\/author\\\/gok-gokalp\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"WPF Binding Nedir, Binding Modlar\u0131 ve Value Converter - G\u00f6khan G\u00f6kalp","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:\/\/gokhan-gokalp.com\/wpf-binding-nedir-binding-modlari-ve-value-converter\/","og_locale":"tr_TR","og_type":"article","og_title":"WPF Binding Nedir, Binding Modlar\u0131 ve Value Converter - G\u00f6khan G\u00f6kalp","og_url":"https:\/\/gokhan-gokalp.com\/wpf-binding-nedir-binding-modlari-ve-value-converter\/","og_site_name":"G\u00f6khan G\u00f6kalp","article_published_time":"2015-07-03T22:14:54+00:00","author":"G\u00f6khan G\u00f6kalp","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"G\u00f6khan G\u00f6kalp","Tahmini okuma s\u00fcresi":"5 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gokhan-gokalp.com\/wpf-binding-nedir-binding-modlari-ve-value-converter\/#article","isPartOf":{"@id":"https:\/\/gokhan-gokalp.com\/wpf-binding-nedir-binding-modlari-ve-value-converter\/"},"author":{"name":"G\u00f6khan G\u00f6kalp","@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe"},"headline":"WPF Binding Nedir, Binding Modlar\u0131 ve Value Converter","datePublished":"2015-07-03T22:14:54+00:00","mainEntityOfPage":{"@id":"https:\/\/gokhan-gokalp.com\/wpf-binding-nedir-binding-modlari-ve-value-converter\/"},"wordCount":811,"commentCount":1,"publisher":{"@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe"},"keywords":["ValueConverter","Wpf Binding","Wpf Binding Modlar\u0131","Wpf Binding Nedir","Wpf Value Converter"],"articleSection":["WPF"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/gokhan-gokalp.com\/wpf-binding-nedir-binding-modlari-ve-value-converter\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/gokhan-gokalp.com\/wpf-binding-nedir-binding-modlari-ve-value-converter\/","url":"https:\/\/gokhan-gokalp.com\/wpf-binding-nedir-binding-modlari-ve-value-converter\/","name":"WPF Binding Nedir, Binding Modlar\u0131 ve Value Converter - G\u00f6khan G\u00f6kalp","isPartOf":{"@id":"https:\/\/gokhan-gokalp.com\/#website"},"datePublished":"2015-07-03T22:14:54+00:00","breadcrumb":{"@id":"https:\/\/gokhan-gokalp.com\/wpf-binding-nedir-binding-modlari-ve-value-converter\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gokhan-gokalp.com\/wpf-binding-nedir-binding-modlari-ve-value-converter\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/gokhan-gokalp.com\/wpf-binding-nedir-binding-modlari-ve-value-converter\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gokhan-gokalp.com\/"},{"@type":"ListItem","position":2,"name":"WPF Binding Nedir, Binding Modlar\u0131 ve Value Converter"}]},{"@type":"WebSite","@id":"https:\/\/gokhan-gokalp.com\/#website","url":"https:\/\/gokhan-gokalp.com\/","name":"G\u00f6khan G\u00f6kalp","description":"C# &amp; Python lover","publisher":{"@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gokhan-gokalp.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe","name":"G\u00f6khan G\u00f6kalp","pronouns":"he","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659","url":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659","contentUrl":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659","caption":"G\u00f6khan G\u00f6kalp"},"logo":{"@id":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659"},"sameAs":["https:\/\/gokhan-gokalp.com"],"url":"https:\/\/gokhan-gokalp.com\/tr\/author\/gok-gokalp\/"}]}},"_links":{"self":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts\/329","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/comments?post=329"}],"version-history":[{"count":16,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts\/329\/revisions"}],"predecessor-version":[{"id":347,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts\/329\/revisions\/347"}],"wp:attachment":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/media?parent=329"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/categories?post=329"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/tags?post=329"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}