‫ยินดีต้อนรับกลับ.
‫ในวิดีโอนี้ เราจะพูดถึงคุณสมบัติการพึ่งพาและคุณสมบัติเหล่านี้มีความสำคัญอย่างยิ่งทันทีที่เราทำการผูกข้อมูล
‫และโดยทั่วไป มันสมเหตุสมผลสำหรับคุณที่จะเข้าใจว่ามันทำงานอย่างไร
‫ไปข้างหน้าและสร้างปุ่มภายในกริดของเรา
‫และเราทำได้โดยการสร้างคีย์เวิร์ดของปุ่มตามที่เราเห็นมาหลายครั้งแล้ว
‫และที่นี่ผมจะกำหนดความสูงของ สมมุติว่า 100 พิกเซลและความกว้าง 200 พิกเซล
‫แล้วตามด้วยเนื้อหาของ Click Me
‫และตอนนี้ฉันต้องการใช้สิ่งที่เรียกว่าพื้นหลัง
‫จึงมีคุณสมบัติที่เรียกว่า พื้นหลัง และฉันต้องการมอบหมายสิ่งนั้นให้กับท่อระบายน้ำอย่างแน่นอน
‫นั่นจะเป็นปุ่มของฉัน
‫และอย่างที่คุณเห็นในตอนนี้ มันมีเพียงแค่สีเลื่อย
‫บางทีเราควรทำให้มันเป็นสีแดง
‫โอเค สีแดง
‫มันค่อนข้างแข็งแกร่ง
‫ม่วงแดง.
‫นั่นดูดี.
‫เป็นสีที่เรียบง่าย
‫แนวคิดเบื้องหลังนี้คือฉันต้องการอธิบายให้คุณฟังว่าคุณสมบัติการพึ่งพาคืออะไร อยู่ที่ไหน และจะสร้างคุณสมบัติการพึ่งพาของคุณเองได้อย่างไร
‫และมันค่อนข้างง่ายที่จะทำมันด้วยปุ่ม สมมุติว่า
‫และอีกอย่าง ปุ่มนี้ และจริงๆ แล้ว ฉันจะปิดมันแบบนั้น เพราะฉันต้องการจัดรูปแบบปุ่มนั้น
‫ดังนั้นภายในแท็กปุ่ม ฉันต้องการเพิ่มรูปแบบอื่นๆ ให้กับปุ่มนั้นและสไตล์ควรเป็นตัวกระตุ้น
‫เลยอยากปลุกระดม
‫ดังนั้นหากฉันเข้าไปในพื้นที่ปุ่ม ฉันต้องการเปลี่ยนสีหรืออะไรทำนองนั้น
‫ฉันจะใช้รูปแบบจุดปุ่ม
‫ตอนนี้สไตล์ปุ่มต้องการสไตล์ในนี้ ฉันจึงสามารถสร้างสไตล์ของเราเองที่นี่ และฉันจะกำหนดเป้าหมายสำหรับสไตล์นั้น
‫ประเภทเป้าหมายจะเป็นปุ่ม
‫เท่านั้นยังไม่พอ เพราะตอนนี้ฉันต้องการเพิ่มทริกเกอร์ให้กับสไตล์นั้น
‫ดังนั้นฉันจะใช้ทริกเกอร์สไตล์
‫ชอบอันนี้.
‫และตอนนี้ ฉันสามารถดำเนินการต่อและสร้างทริกเกอร์เล็กๆ ที่สวยงาม ซึ่งจะถูกไล่ออกเมื่อมีเหตุการณ์เกิดขึ้น
‫และเราได้เห็นเหตุการณ์แล้ว แต่นั่นเป็นเหตุการณ์ที่แตกต่างกันเล็กน้อย
‫จึงเป็นทริกเกอร์ที่เราสามารถใช้ได้ดังต่อไปนี้
‫เราสามารถสร้างทริกเกอร์ได้ที่นี่และทริกเกอร์นั้นจะมีคุณสมบัติ
‫และตัวอย่างนั้นคือวางเมาส์ไว้เหนือ
‫ดังนั้นเมื่อเมาส์อยู่เหนือปุ่มนั้น ค่าควรตั้งเป็น true
‫และในทริกเกอร์นั้นฉันต้องมีตัวตั้งค่า
‫แล้วถ้าเป็นแบบนั้นจะเกิดอะไรขึ้น?
‫สิ่งที่ผมจะทำคือผมจะตั้งค่าขนาดตัวอักษรของคุณสมบัติเป็น 30 เพราะตอนนี้ขนาดตัวอักษรเล็กลงมาก
‫ที่นี่เรามีปุ่มที่มีความกว้างเฉพาะ เนื้อหาและความกว้าง และสิ่งต่างๆ เหล่านั้น
‫และฉันทำให้มันเป็นนักบิน แต่สีแดงม่วงซีด
‫จากนั้นฉันก็เพิ่มสไตล์ให้กับปุ่มนั้น
‫และสไตล์ที่ฉันเพิ่มเข้าไปนั้นจริงๆ แล้วเป็นตัวกระตุ้น
‫ดังนั้นฉันจึงสามารถมีสิ่งที่เรียกว่าทริกเกอร์สไตล์ ซึ่งจะทริกเกอร์การเปลี่ยนแปลงรูปแบบ
‫และนั่นคือทริกเกอร์จะทำงานเมื่อเมาส์อยู่เหนือปุ่มนั้นและจะตั้งค่าสิ่งต่างๆ
‫ดังนั้นสิ่งที่จะทำคือจะกำหนดขนาดฟอนต์เป็นค่าที่เราได้ระบุไว้ที่นี่และเดี๋ยวนี้
‫ที่นี่เรากำหนดค่า
‫True หมายความว่าระบบจะทำงานเมื่อวางเมาส์ไว้เหนือความเป็นจริง
‫และนั่นเป็นเรื่องจริงเมื่อเราวางเมาส์เหนือเมาส์ หรือเมื่อเราวางเมาส์เหนือปุ่ม
‫ดังนั้นถ้าเราวิ่งเราควรเห็นการเปลี่ยนแปลงบางอย่าง
‫และนี่เป็นวิธีที่ค่อนข้างยาวในการมีฟังก์ชันโฮเวอร์ แต่เราต้องการใช้มากกว่านี้อีกมาก
‫คุณจะเห็นว่า ฉันวางเมาส์เหนือมัน แล้วสีจะเปลี่ยนเป็นสีน้ำเงิน
‫แล้วเราก็มีข้อความนี้ซึ่งดูใหญ่กว่านั้น
‫ดังนั้นค่าจะเปลี่ยนเป็น 30
‫นั้นยอดเยี่ยมและทั้งหมด
‫แต่ทำไมเราต้องมีรหัสยาวๆ นี้ด้วย?
‫ก็คือว่าเราใช้คุณสมบัติที่นี่
‫อย่างที่คุณเห็น สิ่งนี้เรียกว่าคุณสมบัติ และจริงๆ แล้วความกว้างคือคุณสมบัติ
‫เนื้อหาคือคุณสมบัติ พื้นหลังคือคุณสมบัติ และขึ้นอยู่กับคุณสมบัติการพึ่งพาหรือเชื่อมต่อกับคุณสมบัติการพึ่งพา
‫และมีความสำคัญสำหรับการผูกข้อมูล
‫ดังที่ฉันได้กล่าวไปแล้ว สิ่งที่เราจะกล่าวถึงในวิดีโอถัดไปหรือหนึ่งในวิดีโอถัดไป แต่สิ่งเหล่านี้ก็มีความสำคัญเช่นกันที่จะมีเหตุการณ์ทริกเกอร์นี้
‫หรือปุ่มนั้นจะต้องรับรู้ถึงสิ่งที่เกิดขึ้น
‫ไปข้างหน้าและสร้างปุ่มภายในวิธีการของหน้าต่างหลักของเรา
‫เพิ่งจะสร้างปุ่มและตอนนี้ฉันต้องการตรวจสอบชั้นเรียนเอง
‫ไปที่คำจำกัดความเพื่อให้คุณสามารถกด F 12 เพื่อรับคำจำกัดความ
‫และสิ่งที่จะทำคือมันจะแสดงคลาสปุ่มให้ฉันดู
‫และอย่างที่คุณเห็น มันเป็นคลาสที่สืบทอดจากปุ่ม
‫มีคุณสมบัติการพึ่งพาแบบอ่านอย่างเดียวแบบคงที่ซึ่งเป็นคุณสมบัติเริ่มต้นถูกยกเลิก คุณสมบัติเป็นคุณสมบัติเริ่มต้น
‫ดังนั้นอย่ามากเกินไป
‫แต่สิ่งที่คุณเห็นได้ก็คือ ที่จริงแล้วมีคุณสมบัติปกติอยู่ที่นี่
‫นี่คือคุณสมบัติคลาสที่เรามีที่นี่ซึ่งเรียกว่าเป็นค่าเริ่มต้นถูกยกเลิกและเป็นค่าเริ่มต้นและเชื่อมต่อกับคุณสมบัติการพึ่งพาเหล่านั้น
‫ดังนั้นจึงแสดงถึงคุณสมบัติที่สามารถตั้งค่าได้ด้วยวิธีการต่างๆ เช่น ข้อมูลการจัดรูปแบบ แอนิเมชั่นการเชื่อมโยง
‫และการสืบทอด
‫การเชื่อมโยงข้อมูล อย่างที่ฉันพูด เป็นสิ่งที่เราจะพูดถึงในภายหลัง
‫จัดแต่งทรงผมที่ดี
‫สิ่งที่เราเพิ่งทำไป เราจัดรูปแบบปุ่มของเรา และเราสามารถใช้แอนิเมชั่นและการสืบทอดสำหรับสิ่งนั้นได้
‫แต่ตอนนี้ มาดูลึกลงไปในฐานปุ่มกัน เพื่อให้เรารู้ว่าปุ่มนั้นสืบทอดมาจากฐานปุ่ม
‫จากนั้นเราไปที่คำจำกัดความของฐานปุ่มและตรวจสอบ
‫ไม่เป็นไร.
‫เป็นคลาสการควบคุมเนื้อหา
‫ดังนั้นฐานปุ่มจึงสืบทอดมาจากการควบคุมเนื้อหาซึ่ง
‫ฐานปุ่มมีเหตุการณ์ที่รูท อย่างที่คุณเห็นที่นี่ เหตุการณ์การคลิก
‫และเราเห็นครั้งสุดท้ายแล้ว เหตุการณ์ที่รวมอยู่นั้นมีคุณสมบัติการพึ่งพามากมายเช่นกัน
‫เช่น โหมดกดคลิก คำสั่งคุณสมบัติ เป้าหมาย และอื่นๆ
‫แต่เรายังไม่ได้สัมผัสบางส่วน
‫แต่สิ่งที่น่าสนใจยิ่งกว่าคือ หากเราเจาะลึกลงไปในการควบคุมเนื้อหา เราจะเห็นว่ามีคุณสมบัติที่บอกว่ามีเนื้อหา
‫นี่คือการดูแลเนื้อหาทั้งหมดของปุ่ม
‫ตัวอย่างเช่น ข้อความเป็นบล็อกข้อความภายในปุ่มของเรา
‫ดังนั้นหากเรามีเนื้อหาอยู่ภายในปุ่มของเราแล้ว
‫มันถูกจัดการโดยคลาสนี้ ดังนั้นโดยคลาสการควบคุมเนื้อหานี้
‫และที่จริงแล้ว เราสามารถเจาะลึกลงไปอีก ไปที่คำจำกัดความ และที่นี่ เราจะพบคุณสมบัติการพึ่งพามากมายและเหตุการณ์รูทสองเหตุการณ์
‫และคลาสการควบคุมนี้มีคุณสมบัติการพึ่งพาที่เรียกว่าคุณสมบัติการเติมมากกว่าแปรงขอบ
‫ดังนั้นสีของเส้นขอบแล้วการจัดตำแหน่งเนื้อหาในแนวตั้งการจัดตำแหน่งเนื้อหาในแนวนอน
‫และนี่คือสิ่งที่น่าสนใจสำหรับเราเพราะเราใช้มัน
‫เป็นคุณสมบัติพื้นหลังและนั่นคือสิ่งที่เราได้ตั้งค่าไว้ในไฟล์ XAML ของเรา
‫ดังที่คุณเห็นที่นี่ เราตั้งค่าพื้นหลังเป็น Pale Violet Red เพื่อให้เราสามารถเข้าถึงคุณสมบัติการพึ่งพาผ่านคุณสมบัติของเราที่นี่
‫นี่คือคุณสมบัติของเรา เช่น ขนาดฟอนต์ ฟอนต์ พื้นหลังครอบครัว โฟร์กราวด์ ทุกสิ่งที่เราใช้เมื่อเราทำงานกับตัวควบคุม
‫และปุ่ม ตัวอย่างเช่น เป็นตัวควบคุม หรือบล็อกข้อความก็เป็นตัวควบคุมด้วย
‫ดังนั้นพวกเขาทั้งหมดจึงสืบทอดจากคลาสการควบคุมนี้ และพวกเขาทั้งหมดมีคุณสมบัติการพึ่งพาซึ่งจะทริกเกอร์และแจ้งให้ทราบเกี่ยวกับการเปลี่ยนแปลงที่ดี
‫ดังนั้นที่นี่เราเห็นด้วยว่ามีบางสิ่งที่สำคัญเกี่ยวกับคุณสมบัติการพึ่งพา และนั่นคือคุณสมบัติคงที่เสมอและเป็นแบบอ่านอย่างเดียว
‫นี่จึงเป็นสิ่งสำคัญมาก
‫สิ่งที่คุณเห็นก็คือมันลงท้ายด้วยชื่อคุณสมบัติเสมอ
‫ดังนั้นเมื่อใดก็ตามที่เรากำหนดคุณสมบัติการพึ่งพา เราจะพูดว่า พื้นหลัง ซึ่งเป็นชื่อเดียวกับคุณสมบัตินั้นเอง
‫ตัวอย่างเช่น ในที่นี้ พื้นหลังของพวกมันอยู่ที่ไหน และตามด้วยคำว่า คุณสมบัติ ในตอนท้ายด้วย
‫เรื่องราวที่ยาวมาก และเรามองลึกลงไปมาก แต่นั่นจะแสดงให้คุณเห็นว่าคุณสมบัติการพึ่งพาเหล่านั้นคืออะไร
‫และสิ่งที่เรากำลังทำงานอยู่ตลอดเวลา
‫เรากำลังเล่นกับคุณสมบัติ แต่จริงๆ แล้วพวกมันแก้ไขคุณสมบัติการพึ่งพา
‫ทำไมเราถึงต้องการทั้งหมดนี้?
‫เพื่อทำความเข้าใจว่าเกิดอะไรขึ้นกับทริกเกอร์นี้ WPF กำลังใช้คุณสมบัติการพึ่งพาที่นี่
‫ตัวอย่างเช่น วางเมาส์เหนือและวางเมาส์ไว้เหนือการแจ้งเตือนแบบลูกโซ่กับ WPF ด้วยความช่วยเหลือของคุณสมบัติการพึ่งพาและที่ช่วยให้เราสามารถตั้งค่าเป็นจริงได้
‫แล้วถ้าคุณลองดู เพราะนั่นคือสิ่งที่ผมยังไม่ได้สัมผัส
‫จริงๆ แล้วมีข้อผิดพลาดในการสร้าง เราจึงต้องกำจัดปุ่มนี้ที่นี่
‫แต่สิ่งที่ผมยังไม่ได้กล่าวถึงหรือสัมผัส ซึ่งค่อนข้างสำคัญมีดังต่อไปนี้
‫คุณจะเห็นได้ว่าเรามีทริกเกอร์นี้ และมันบอกว่าคุณสมบัติเป็นเมาส์เหนือค่า
‫จริง.
‫และมันจะทริกเกอร์เมื่อวางเมาส์ไว้เหนือจริง มันจะทำอย่างไร?
‫มันจะตั้งค่าคุณสมบัติเช่นขนาดตัวอักษรเป็น 30
‫และให้ฉันแสดงให้คุณเห็นอีกครั้ง
‫ดู ดู.
‫แต่ตอนนี้ ถ้าฉันปล่อยปุ่มไว้ คุณจะเห็นว่า มันเปลี่ยนกลับ และนั่นก็ทำได้โดยคุณสมบัติการพึ่งพานี้
‫ดังนั้นจึงเป็นการแจ้งเกี่ยวกับสิ่งที่เกิดขึ้นและการขาย โดยตั้งค่าขนาดฟอนต์กลับเป็นค่าเดิม
‫อย่างที่คุณเห็น มันเป็นจริงก็ต่อเมื่อเมาส์หยุดทำงาน และนั่นเป็นไปได้ผ่านคุณสมบัติการพึ่งพา
‫อีกอย่างเกี่ยวกับคุณสมบัติการพึ่งพา เพราะฉันบอกว่าคุณสมบัติเหล่านี้ควรเป็นแบบสแตติกและอ่านอย่างเดียวเสมอ
‫และนั่นเป็นเพราะว่าการควบคุมทั้งหมดควรถูกแชร์และพร้อมใช้งาน
‫ดังนั้นคุณจึงไม่ต้องการให้มีการควบคุมเพียงครั้งเดียว
‫คุณยังต้องการให้ใช้ได้สำหรับชั้นเรียนอื่นๆ และมุมมองอื่นๆ เป็นต้น
‫และเป็นแบบคงที่เพราะไม่ควรเปลี่ยนค่าหลังจากเริ่มต้น
‫และการแจ้งเตือนลูกโซ่นี้ที่ทริกเกอร์คุณสมบัติการพึ่งพานั้นจำเป็นสำหรับการทำเหมืองข้อมูล สำหรับแอนิเมชั่น สำหรับทริกเกอร์ดังที่เราได้เห็นที่นี่
‫สำหรับการจัดสไตล์และอื่นๆ
‫ตอนนี้ ถ้าคุณต้องการดำเนินการต่อและสร้างคุณสมบัติการพึ่งพาของคุณเอง คุณสามารถทำได้ด้วยวิธีต่อไปนี้
‫ฉันจะสร้างคุณสมบัติใหม่ในคลาสนี้ที่นี่
‫ฉันจะเรียกมันจริงๆ
‫มาวางไว้ที่ด้านบนกันเถอะ
‫ฉันจะเรียกมันว่าสาธารณะในทรัพย์สินของฉัน
‫และอย่างที่ฉันบอก นี่คือคุณสมบัติ c LR และในนี้ ฉันจะต้องมี get และ set แต่นั่นไม่เพียงพอ
‫ฉันจะปรับมันในวินาทีนี้
‫มาสร้างคุณสมบัติการพึ่งพาสำหรับคุณสมบัติของฉันกันเถอะ
‫ดังนั้นฉันจะสร้างคุณสมบัติการพึ่งพาสาธารณะแบบอ่านอย่างเดียวแบบคงที่ที่เรียกว่าคุณสมบัติการพึ่งพาของฉัน
‫คุณสมบัติการพึ่งพา และสิ่งนั้นควรเริ่มต้นทันทีด้วยคุณสมบัติการพึ่งพา dot register
‫ดังนั้นเราจึงลงทะเบียนคุณสมบัติการพึ่งพาใหม่และเราจำเป็นต้องกำหนดหลายสิ่ง
‫ตัวอย่างเช่น เราจำเป็นต้องมีชื่อสตริง และฉันจะเรียกมันว่า
‫ทรัพย์สินของฉันแล้วเราต้องการประเภททรัพย์สิน
‫แล้วคุณสมบัตินี้ควรเป็นประเภทใด?
‫และอย่างที่เราได้เห็นในที่นี้ ทรัพย์สินที่เป็นทรัพย์สินของฉันเป็นแบบ int
‫ฉันจะใช้ชนิดของ int
‫ต่อไปเราต้องพิมพ์เจ้าของทรัพย์สิน
‫ดังนั้นเจ้าของประเภทและเจ้าของทรัพย์สินประเภทนี้จึงเป็นคลาสหน้าต่างหลักของฉัน เพราะมันอยู่ในคลาสไม่มีคลาสหลัก
‫เราพูดง่ายๆ ว่า type of จะเป็นหน้าต่างหลัก และตอนนี้เราจำเป็นต้องส่งต่อข้อมูลเมตาของคุณสมบัติด้วย
‫ฉันจะสร้างข้อมูลเมตาของคุณสมบัติใหม่ซึ่งจะเป็นศูนย์
‫ผมจะใส่ศูนย์ตรงนี้ ไม่มีอะไรแฟนซีเกินไป แค่นั้นเอง
‫นั่นคือวิธีที่เราสามารถสร้างคุณสมบัติการพึ่งพาได้
‫และตอนนี้ทรัพย์สินของฉันเองก็ควรได้รับอิทธิพลจากคุณสมบัติการพึ่งพานี้ด้วยเช่นกัน
‫และเพื่อที่จะทำอย่างนั้นได้ ฉันต้องไปข้างหน้าและปรับ get และ set ดังนั้น getter ควรคืนค่า
‫get ค่าคุณสมบัติการพึ่งพาของฉัน
‫แต่ตอนนี้เรามีปัญหาที่ว่าค่าของคุณสมบัติการพึ่งพานั้นเป็นคุณสมบัติการพึ่งพาประเภทและถึงแม้เราจะตั้งค่าให้เป็นประเภท
‫int เราก็ยังต้องหล่อหลอมให้อยู่ในนั้น
‫ผมจะใส่มันเป็นจำนวนเต็ม และตอนนี้ เราสามารถดำเนินการปิด getter นี้ ปิดคำสั่ง
‫พูดดีกว่า และตอนนี้ setter ควรถูกตั้งค่า
‫และที่นี่ฉันตั้งค่าคุณสมบัติการพึ่งพาของฉันเป็นค่าที่ได้รับ
‫นั่นคือสิ่งที่เราทำที่นี่ และนั่นคือวิธีที่คุณสามารถสร้างคุณสมบัติการพึ่งพาของคุณเองได้
‫ดังนั้นนี่คือสิ่งสำคัญ สแตติก อ่านอย่างเดียว
‫คุณต้องสร้างเป็นประเภทคุณสมบัติการพึ่งพา
‫คุณสามารถตั้งชื่อได้ จากนั้นคุณต้องลงทะเบียนและต้องตั้งชื่อ ประเภท และที่ที่เจ้าของอยู่หรือเจ้าของคืออะไร
‫ดังนั้นคลาสที่สร้างคุณสมบัติแล้วคุณต้องส่งมอบข้อมูลเมตาของคุณสมบัติเพื่อให้คุณสามารถเพิ่มข้อมูลเมตาของคุณสมบัติเพิ่มเติมได้
‫อย่างที่คุณเห็น มีโอเวอร์โหลดที่แตกต่างกันสี่แบบ และคุณสามารถมอบอ็อบเจ็กต์ที่เป็นค่าเริ่มต้นได้
‫และฉันแค่บอกว่า โอเค ค่าเริ่มต้นเป็นศูนย์
‫ดังนั้นพร็อพเพอร์ตี้ของฉันจะตั้งค่าเริ่มต้นเป็นศูนย์เนื่องจากข้อมูลเมตาของพร็อพเพอร์ตี้ที่ฉันตั้งค่าไว้ที่นี่
‫ถูกต้องทั้งหมด
‫มีของมากมายที่นี่
‫และขึ้นอยู่กับสิ่งที่คุณกำลังจะพัฒนา คุณอาจไม่เคยสร้างคุณสมบัติการพึ่งพาของคุณเองเลย
‫ดังนั้นไม่ต้องกังวลหากคุณจำเป็นต้องใช้คุณสมบัติการพึ่งพาในจุดหนึ่ง ให้ตรวจสอบวิธีสร้างคุณสมบัติการพึ่งพาของคุณเอง
‫มิฉะนั้น คุณสามารถใช้คุณสมบัติที่เรามีที่นี่และสำหรับผู้ใช้ปลายทาง หรือสมมติว่าสำหรับนักพัฒนาซอฟต์แวร์ที่เพิ่งสร้าง
‫UI และจะไม่มีความเกี่ยวข้องมากนัก
‫แต่ฉันแค่ต้องการแสดงให้คุณเห็นว่าสิ่งต่างๆ ถูกสร้างขึ้นมาอย่างไร และอะไรที่สำคัญที่นี่
‫ไม่เป็นไร.
‫แล้วพบกันใหม่ในวิดีโอหน้า