WPF의 프로그램을 처음으로 작업하고 있습니다. GridView 모드에서 데이터베이스에서 가져온 바인딩 된 데이터 집합의 데이터를 표시하는 ListView가 있습니다.프로그래밍 방식으로로드시 GridView 셀 내용 바꾸기
내 데이터베이스에서 "생년월일"은 필수 필드가 아닙니다. 따라서 dob가없는 레코드의 값은 DateTime.MinValue
으로 설정되었습니다. 이 최소값 날짜 각각에 날짜가 01/01/0001로 셀에 표시됩니다. DateTime.MinValue
이 표시되지 않거나 각 MinValue
을 ""
으로 바꿀 수 있도록 셀을 포맷하는 방법을 찾으려고합니다.
내 생각은 날짜가있는 텍스트 블록의 "로드 됨"이벤트를 사용하고 "01/01/0001"의 각 인스턴스를 바꾸거나 GridView로 보내기 전에 데이터 집합을 반복하여 제거/바꾸기 그들. 나도 행운을 찾지 못했다. 의 GridView에 대한
내 XAML 코드는 다음과 같습니다 데이터 집합에 대한
<Grid>
<ListView x:Name="resultsListView" GridViewColumnHeader.Click="GridViewColumnHeaderClickedHandler" Margin="0,54,0,28" ItemsSource="{Binding Path=Table}">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Path=LastName}"
Header="Last Name"
Width="150"/>
<GridViewColumn DisplayMemberBinding="{Binding Path=FirstName}"
Header="First Name"
Width="100"/>
<GridViewColumn DisplayMemberBinding="{Binding Path=MiddleName}"
Header="Middle Name"
Width="100"/>
<GridViewColumn Header="Date of Birth" Width="100">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock TextAlignment="Justify" Text="{Binding Path=DateOfBirth, StringFormat='{}{0:MM/dd/yyyy}'}" Loaded="TextBlock_Loaded" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</Grid>
코드 :
이private void FillListView(DataSet ds)
{
if (resultsListView.Items.Count != 0)
{
resultsListView.Items.Clear();
}
resultsListView.DataContext = ds.Tables[0].DefaultView;
}
가 내의 GridView에서 DateTime.MinValue
에 대한 공백을 표시하는 방법에 대한 조언을 많이 주시면 감사하겠습니다!
완벽한, 감사합니다! 나는 Convert/Convert Back Code를 여기에서 사용했다 : http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx - 나를 매달 았던 유일한 방법은 선언하는 방법을 알아내는 것이었다. 내 네임 스페이스는 xaml입니다. 다른 사용자는 xmlns : local = "clr-namespace : -your namespace-" –
을 사용해야합니다. 값 변환기는 이런 종류의 일에 정말로 유용합니다. 변환기 클래스에서 공용 속성을 정의한 다음 다른 구성으로 다른 리소스를 추가 할 수 있습니다. 예를 들어, DateTime.MinValue가 공백으로 표시되는지 여부를 제어하는 부울을 가질 수 있습니다. 그런 다음 동일한 클래스를 다른 방식으로 다시 사용할 수 있습니다. –