У меня есть текстовое поле, привязанное к классу со свойством типа Timespan, и я написал преобразователь значений для преобразования строки в TimeSpan.
] Если в текстовое поле введено не число, я бы хотел, чтобы отображалось собственное сообщение об ошибке (вместо стандартного «строка ввода в неправильном формате»).
Код конвертера:
public object ConvertBack(
object value,
Type targetType,
object parameter,
CultureInfo culture)
{
try
{
int minutes = System.Convert.ToInt32(value);
return new TimeSpan(0, minutes, 0);
}
catch
{
throw new FormatException("Please enter a number");
}
}
У меня есть установите ValidatesOnExceptions = True в привязке XAML.
Однако я наткнулся на следующую статью MSDN, в которой объясняется, почему вышеуказанное не будет работать:
«Механизм привязки данных не улавливает исключения, которые генерируются предоставленный пользователем преобразователь. Любое исключение, вызванное методом Convert, однако следует ли мне встраивать HTML в файл класса. Меня беспокоит то, что если мне когда-нибудь придется изменить HTML (т.е. добавить идентификатор к элементу), мне придется скорректировать файл класса.
В настоящее время я не использую шаблон MVC в своем проекте, поэтому представление не является вариантом.
Мои сокращенные файлы классов выглядят следующим образом (для этого примера я предположил, что 1 месяц равен 4 неделям):
class calendar {
function __construct(){
}
function output() {
print "<table>";
for ($week=0; $week < 4; $week++) {
print "<tr>";
for ($day=0; $day < 7; $day++) {
print "<td></td>";
}
print "</tr>";
}
print "</table>";
}
Есть ли какие-нибудь другие методы, о которых я не подумал, которые бы отделили HTML от файла класса? Заранее благодарим