몇 시간 동안이 주제를 연구 중이므로 저에게 적합한 솔루션을 찾을 수 없습니다. WPF 행 유효성 검사 기본 키 필드
나는 (은 MSDN 데모로 매우 동일한 방식으로) 코드에서 개체 목록을 표시하는 데이터 그리드를 사용하는 간단한 WPF 프로그램내 데이터가 SQL 데이터베이스에서 가져온에 배치되어 있습니다 제외 (http://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.rowvalidationrules%28v=vs.110%29.aspx : 나는 정확히이 구조 MSDN의 예제와 일치하는 공공 재정에 ValidationResult 유효성 검사() 메소드를 포함하는 ValidationRule 클래스를 설정 한
public PersonInfo()
{
InitialiseComponent();
LoadPeopleFromSQL();
}
public void LoadPeopleFromSQL()
{
DataSet ds = GetDataSet(SQLConnectionString);
List<PersonInfo> personList = new List<PersonInfo>();
foreach(DataRow row in ds.Tables[0].Rows)
{
personList.Add(new PersonInfo(row[0], row[1], row[2]));
}
PersonDataGrid.ItemsSource = personList;
: 아래와 같이 데이터 그리드에 바인딩 된 개체의 목록 그건 내 'Pers' 코스 '객체'라기보다는 객체) 지금 수행 데이터 그리드에있는 항목의 나머지 부분을 통해 검색하고 확인 PersonInfo.ID 필드가되지 않았는지 확인하고 싶은 것 그러나
public class CourseValidationRule : ValidationRule
{
public override ValidationResult Validate(object value,
System.Globalization.CultureInfo cultureInfo)
{
Course course = (value as BindingGroup).Items[0] as Course;
if (course.StartDate > course.EndDate)
{
return new ValidationResult(false,
"Start Date must be earlier than End Date.");
}
else
{
return ValidationResult.ValidResult;
}
}
}
//Xaml snippet
<DataGrid.RowValidationRules>
<local:CourseValidationRule ValidationStep="UpdatedValue"/>
</DataGrid.RowValidationRules>
에 중복되었습니다. 이 코드는 다음과 같습니다. http://www.codeproject.com/Articles/30905/WPF-DataGrid-Practical-Examples#valid_dataset
그러나이 예제에서는 BindingGroup 개체가 클래스 개체가 아닌 datarow를 반환 할 것으로 예상합니다.
BindingGroup 개체에 '소유자'라는 속성이 있고 데이터row가 포함 된 것으로 나타났습니다. 그러나 .net 4 사용하고 '소유자'속성에 액세스 할 수 없습니다.
내 기본 키의 유효성을 검사하는 방법을 보여줄 수 있습니까? 또는 .net 4 내에서 BindingGroup.Owner 속성에 액세스하는 데 도움이됩니다 (내 문제를 해결할 수 있다고 생각합니다).