If I fill a ListBoxView with objects, the text that will display for each one will be the text produced by the ToString() function. Let's say I want to use ToString() in some cases, and GetSpecialString() in other cases. What is the best way to switch between the two?
Should I have two different objects with the same base class with different ToString() methods, or is there a 开发者_开发问答way I can have both the ToString() and GetSpecialString() methods in the same class?
You could make a class-wrapper for your view model, which returns different strings by condition:
class ViewModelListItem {
public ViewModelListItem(MyObject item) {
this.Item = item;
}
public MyObject Item {
get;
private set;
}
public override ToString() {
// to do: add your logic here
if (...)
return "case A";
else
return "Case B";
}
}
Then just fill your ListView with such items.
If the choice between ToString()
and GetSpecialString()
is esclusive, just override ToString()
in class you want and done.
精彩评论