2018/01/20(Sat) 02:14:12 編集(投稿者)
まず、Bindingを使うのなら、MultiTriggerではなくMultiDataTriggerを使ってください。
IsMouseOverをBindingで記述する場合、
{Binding Path=IsMouseOver, RelativeSource={RelativeSource Self}}
という記述を使用できます。
Condition.ValueにはBindingを記述できません。
> <Condition Property="{Binding Path=Title}" Value="{Binding Path=WindowTitle}" />
TitleとWindowTitleがどちらも同じオブジェクトにあるプロパティであるなら、
一番簡単なのは、以下のようにVMにプロパティを一つ増やすことです。
class VM : NotifyPropertyChanged {
private string m_Title, m_WindowTitle;
public Title {
get { return this.m_Title; }
set {
if (this.m_Title == value) return;
this.m_Title = value;
this.OnPropertyChanged(nameof(Title));
this.OnPropertyChanged(nameof(IsSameTitle));
}
}
public WindowTitle {
get { return this.m_WindowTitle; }
set {
if (this.m_WindowTitle == value) return;
this.m_WindowTitle = value;
this.OnPropertyChanged(nameof(WindowTitle));
this.OnPropertyChanged(nameof(IsSameTitle));
}
}
public bool IsSameTitle {
get { return this.m_Title == this.m_WindowTitle; }
}
}
もしTitleとWindowTitleが異なるオブジェクトソースであるなら、
MultiBindingとIMultiValueConverterを使うことになるでしょうか。
https://stackoverflow.com/questions/905932/how-can-i-provide-multiple-conditions-for-data-trigger-in-wpf