我正在首次使用WPF中的程序。我有一個GridView模式下的ListView,顯示來自綁定數據集(從數據庫中抓取)的數據。以編程方式替換加載的GridView單元格內容
在我的數據庫中,「出生日期」不是必填字段。因此,沒有dob的記錄的值設置爲DateTime.MinValue
。在每個最小值日期中,日期顯示在單元格中爲01/01/0001。我試圖找到一種方法來格式化單元格,以便DateTime.MinValue
不顯示,或者用""
替換每個MinValue
。
我的想法是要麼使用文本塊的「Loaded」事件日期是在並且替換「01/01/0001」的每個實例,或循環通過數據集之前發送到GridView和刪除/替換他們在那裏。我還沒有計算出如何去做。
爲GridView我的XAML代碼是:爲DataSet
<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代碼:http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx - 唯一讓我心生懸念的就是搞清楚如何聲明我在xaml中的命名空間。 對於其他人,您需要使用xmlns:local =「clr-namespace:」您的命名空間 - 「 – 2009-10-05 20:42:04
不客氣。價值轉換器對這類事情非常有用。您可以在轉換器類上定義公共屬性,然後添加具有不同配置的不同資源。例如,你可能有一個布爾值來控制DateTime.MinValue是否被清空,然後你可以用不同的方式重用同一個類。 – 2009-10-05 21:51:59