2013-12-05 2 views
0

Привет всем там ...IValueConverter установить новый образ

я перед одной проблемой, которая не может установить новый образ:

ли мой код правильно?

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
     { 

      var str = value.ToString(); 

      if (str == "income") 
       return new BitmapImage(new Uri("/images/add.png", UriKind.Relative)); 

      if (str == "Expenses") 
      { 

       return new BitmapImage(new Uri("/HouseWivesSavior;component/images/add.png")); 
      } 

      return null; 
     } 
+0

Возможно, ваш путь к изображению неправильный. –

+0

Проверить ниже Url. Это даст вам представление, как это сделать.http: //stackoverflow.com/questions/3204883/wpf-imagesource-binding-with-custom-converter –

ответ

0

Вы должны убедиться, что файлы изображений имеют свой Build Action набор для Resource, как показано, например, here. Тогда вы должны правильно создать их Pack URIs, как

return new BitmapImage(new Uri("pack://application:,,,/images/add.png")); 

и

return new BitmapImage(
    new Uri("pack://application:,,,/HouseWivesSavior;component/images/add.png")); 
+0

#Clemens, Спасибо за ваш ответ, и это совершенно правильно :) As теперь я могу получить изображение на данный момент. Я выложу свое решение так, чтобы, когда другие сталкиваются с одной проблемой, у нее будет идея в ее решении :) –

0

Я нашел решение для моего ответа, который является форматом строки. Из-за чего я не могу получить изображение с несколькими часами устранения неполадок &. Я наконец узнал решение :)

я решить ее так: В моем converter.cs

общественного объект Convert (значение объекта, тип TargetType, параметр объекта, System.Globalization.CultureInfo культура) {

string str = (string)value; 
string newString = str.TrimEnd();//Newly added compared with the old version 

if (newString == "income") 
    return new BitmapImage(new Uri("pack://application:,,,/images/add.png")); 

if (newString == "Expenses") 
{ 
    //return new BitmapImage(new Uri(@"pack://application:,,,/HouseWivesSavior;component/images/add.png")); 
    return new BitmapImage(new Uri("pack://application:,,,/images/edit.png")); 
} 

return null; 

}

С ссылкой выше, что вы можете увидеть, что я добавил этот код: "строка NewString = str.TrimEnd();"

Это потому, что я не хочу лишнего пробела в конце строки. Как и во время вставки в базу данных, что мой код выглядит следующим образом:

if (IncomeButton.IsChecked == true) { 
        CategoryType = IncomeButton.Content.ToString(); 
       }else{ 
        CategoryType = ExpensesButton.Content.ToString(); 
       } 

Во время выполнения, я обнаружил, что почему значение выглядит странно в формате «Расходы» вместо «расходов» ... Поэтому я пробовал с отделкой концевой части см. как & Бинго. У меня это работало как шарм.

Я уже упоминали об этом видео, что как отследить значение: http://www.youtube.com/watch?v=evO3_xutDYI

Спасибо всем вам, ребята, за ответ на мой вопрос & жалко тратить свое время & усилия, чтобы решить мой вопрос :) Удачи всем вам & приятный день.

Смежные вопросы