WPF CommandParameter เป็น NULL ครั้งแรกที่เรียก CanExecute
ฉันพบปัญหาเกี่ยวกับ WPF และคำสั่งที่ผูกไว้กับปุ่มภายใน DataTemplate ของ ItemsControl สถานการณ์ค่อนข้างตรงไปตรงมา ItemsControl ถูกผูกไว้กับรายการของวัตถุและฉันต้องการที่จะสามารถลบแต่ละวัตถุในรายการได้โดยคลิกที่ปุ่ม ปุ่มเรียกใช้คำสั่งและคำสั่งจะดูแลการลบ CommandParameter ถูกผูกไว้กับ Object ที่ฉันต้องการลบ ด้วยวิธีนี้ฉันรู้ว่าผู้ใช้คลิกอะไร ผู้ใช้ควรจะลบอ็อบเจกต์ "ของตัวเอง" ได้เท่านั้นดังนั้นฉันจึงต้องทำการตรวจสอบบางอย่างในการเรียก "CanExecute" ของ Command เพื่อตรวจสอบว่าผู้ใช้มีสิทธิ์ที่ถูกต้อง ปัญหาคือพารามิเตอร์ที่ส่งไปยัง CanExecute เป็น NULL ในครั้งแรกที่เรียก - ดังนั้นฉันจึงไม่สามารถเรียกใช้ตรรกะเพื่อเปิด / ปิดคำสั่งได้ อย่างไรก็ตามหากฉันเปิดใช้งานทุกอย่างแล้วคลิกปุ่มเพื่อดำเนินการคำสั่ง CommandParameter จะถูกส่งผ่านอย่างถูกต้อง นั่นหมายความว่าการผูกกับ CommandParameter กำลังทำงาน XAML สำหรับ ItemsControl และ DataTemplate มีลักษณะดังนี้: <ItemsControl x:Name="commentsList" ItemsSource="{Binding Path=SharedDataItemPM.Comments}" Width="Auto" Height="Auto"> <ItemsControl.ItemTemplate> …