Вы можете сказать, если кто-то запросил вашу собственность, установив флаг, хотя и не уверен, что это будет соответствовать вашим потребностям:
private bool _isTitleBound = false;
public string Title
{
set
{
_title = value;
this.RaisePropertyChanged(() => Title);
}
get
{
_isTitleBound = true;
return _title;
}
}
Вы также можете рассмотреть ленивый экземпляр, который приведет к вашим одноразовым объектамсоздается только при вызове свойства getter.Если получатели свойства никогда не называются, ваши одноразовые объекты никогда не будут созданы.Кроме того, если это однократная привязка, подумайте об использовании отложенного создания экземпляров с утилизацией вашего объекта.Например:
public MyThing Thing
{
get
{
MyThing thing = CreateMyThing();
Dispatcher.CurrentDispatcher.BeginInvoke(
DispatcherPriority.Background,
new Action(() => thing.Dispose());
return thing;
}
}
private MyThing CreateMyThing()
{
//create and return MyThing instance;
}