編輯:Gettign XAML分析錯誤試圖執行一個轉換器格式日期時間依賴屬性爲文本(字符串)
錯誤時:上「System.Windows.Markup.StaticResourceHolder」提供價值引發了異常。
<DataTemplate>
<myClasses:RegistrationButton x:Name="RegistrationButton" HorizontalAlignment="Center" Height="71" Width="148"
Margin="10,0,5,0"
Style="{DynamicResource ButtonStyleRegistration}"
Click="RegistrationButton_Click"
Title="{Binding Title}"
Oorzaak="{Binding Oorzaak}"
DuurStilstand="{Binding DuurStilstand,
Converter={StaticResource DateTimeConvertor},
ConverterParameter=\{0:t\}}"
BeginStilstand="{Binding BeginStilstand}"
/>
</DataTemplate>
IValueConvertor:
public class DateTimeConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
// Retrieve the format string and use it to format the value.
string formatString = parameter as string;
if (!string.IsNullOrEmpty(formatString))
{
return string.Format(culture, formatString, value);
}
// If the format string is null or empty, simply call ToString()
// on the value.
return value.ToString();
}
// No need to implement converting back on a one-way binding
public object ConvertBack(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
目前我有一個使用綁定和顯示一切正確的String依賴屬性。雖然此屬性應該是DateTime。我在我的應用程序中使用字符串進行計算,而應該使用一個DateTime值來完成此操作。
當我嘗試將此更改爲DateTime時,我什麼也得不到,但綁定錯誤。屬性是String類型之前。
public static readonly DependencyProperty DuurStilstandProperty =
DependencyProperty.Register("DuurStilstand", typeof(DateTime), typeof(RegistrationButton), new UIPropertyMetadata(""));
public DateTime DuurStilstand
{
get { return (DateTime)GetValue(DuurStilstandProperty); }
set { SetValue(DuurStilstandProperty, value); }
}
的XAML綁定:
<TextBlock x:Name="tbDuurStilstand" TextWrapping="Wrap"
Text="{Binding DuurStilstand, UpdateSourceTrigger=PropertyChanged}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="7.5,5,0,0" Height="24.8266666666667"/>
<ListBox.ItemTemplate>
<DataTemplate>
<myClasses:RegistrationButton x:Name="RegistrationButton" HorizontalAlignment="Center" Height="71" Width="148"
Margin="10,0,5,0"
Style="{DynamicResource ButtonStyleRegistration}"
Click="RegistrationButton_Click"
Title="{Binding Title}"
Oorzaak="{Binding Oorzaak}"
DuurStilstand="{Binding DuurStilstand}"
BeginStilstand="{Binding BeginStilstand}"
/>
</DataTemplate>
</ListBox.ItemTemplate>
錯誤顯示在此處(XamlParseException):
<myClasses:RegistrationButton x:Name="btnTestRegistration" Content="Test Registratie" HorizontalAlignment="Left" Margin="16.8,0,0,118.14"
VerticalAlignment="Bottom" Width="119.2" Height="30.2" FontSize="18.667" Click="btnTestRegistration_Click" Style="{DynamicResource ButtonStyleRegistration}" />
爲什麼我無法更改此設置爲DateTime。
該文本塊需要一個字符串,而不是它現在正在獲取的日期時間。當內容被放置在文本塊的.text屬性中時,我如何確保它將DateTime轉換爲字符串?
最好的問候,PeterP
你好Tigran。這是不是相反的方式轉換爲格式字符串在轉換或我得到這個錯誤?有點困惑什麼在這裏返回(hh:mm:ss)。 – PeterP 2012-04-19 13:42:06
@PeterP:你說得對。剛剛糾正,錯字錯誤..太快了。 – Tigran 2012-04-19 13:49:57
我試着實現,但我得到一個解析錯誤,我不知道是什麼原因。會在帖子頂部張貼一些短代碼。我究竟做錯了什麼?試過今天早些時候實現一個轉換器,但由於xmal解析錯誤,我也失敗了。最好的祝福。 – PeterP 2012-04-19 13:51:28