Wpf xceed datetimepicker วันที่ดับ

ฉันกำลังดิ้นรนเพื่อหาวิธีแก้ปัญหาสำหรับเรื่องนี้ การควบคุม wpf datepicker มาตรฐานมีคุณสมบัติ BlackoutDates ซึ่งปิดใช้งานวันที่ในอดีต ฉันต้องการใช้ฟังก์ชันประเภทนี้สำหรับการควบคุม Wpf xceed datetimepicker แต่ไม่รู้ทำอย่างไร สิ่งที่ฉันต้องการจัดการคือปิดการใช้งานวันที่ในอดีตที่จะเลือกเมื่อ datetimepicker ตั้งค่าบางอย่าง มีความคิดอะไรบ้าง?


person Stojdza    schedule 31.03.2014    source แหล่งที่มา
comment
Wpf Xceed DateTimePicker มีอะไรที่การควบคุมมาตรฐานไม่มี คุณอาจจะดีกว่าถ้าใช้การควบคุมแบบมาตรฐาน   -  person Kcvin    schedule 31.03.2014
comment
มันมีคำจำกัดความของเวลา ในการควบคุมมาตรฐานมีเพียงวันที่   -  person Stojdza    schedule 31.03.2014


คำตอบ (2)


เนื่องจาก BlackoutDates ไม่สามารถใช้งานได้ตามค่าเริ่มต้น คุณจะต้องแก้ไข Xceed DateTimePicker ทำความเข้าใจวิธีการประกอบการควบคุมก่อนโดยการอ่าน ที่นี่

ถัดไป โปรดสังเกตว่า DateTimePicker มี Calendar จากนั้น ให้สังเกตเอกสารนี้

จากสิ่งที่ฉันเข้าใจ คุณจะต้องสร้างคุณสมบัติการพึ่งพาสำหรับการควบคุมที่รับการรวบรวม DateTime บางประเภท ในการเรียกกลับของการตั้งค่า porperty คุณจะต้องการนำแต่ละรายการในคอลเลกชัน และเพิ่มลงในคอลเลกชัน PART_Calendar.BlackoutDates โปรดทราบ เนื่องจาก BlackoutDates เป็นแบบอ่านอย่างเดียว คุณไม่สามารถทำให้ DP ของคุณเป็นประเภท CalendarBlackoutDatesCollection และเพียงตั้งค่า BlackoutDates ในการโทรกลับ คุณต้องเพิ่มแต่ละวันที่ลงในคอลเลกชันของปฏิทินด้วยตนเองแทน

person Kcvin    schedule 31.03.2014
comment
แต่การควบคุมของฉันไม่ได้รับการยอมรับคุณสมบัติ BlackoutDates - person Stojdza; 31.03.2014
comment
ฉันเปลี่ยนคำตอบ แจ้งให้เราทราบหากคุณมีคำถาม - person Kcvin; 31.03.2014

โดยไม่ต้องเปลี่ยนซอร์สโค้ดจริงของชุดเครื่องมือ xceed (ซึ่งใช้งานได้จริง) และแก้ไขส่วนปฏิทิน สิ่งที่ดีที่สุดถัดไปคือการเพิ่มกฎการตรวจสอบลงในกล่องข้อความของตัวควบคุม

public class YearValidationRule : ValidationRule 
{
    public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
    {
        DateTime date = value as DateTime;
        if (date == null)
            return new ValidationResult(false, "Chosen date cannot be null.");

        if(BlackoutDatesDates.Contains(date))
            return new ValidationResult(false, "This date is blacked out.");

        return ValidationResult.ValidResult;
    }
}
person BenVlodgi    schedule 31.03.2014