私は従わなければならないProgressIndicator
<MahAppsControls:ProgressIndicator Width="100"
Height="10"
VerticalAlignment="Center"
ProgressColour="White"
Visibility="{Binding ProgressVisibility}"/>
そして、このViewに関連付けられたViewModelで実装します
private Visibility progressVisibility = Visibility.Collapsed;
public Visibility ProgressVisibility
{
get { return progressVisibility; }
set
{
if (value == progressVisibility)
return;
progressVisibility = value;
this.OnPropertyChanged("ProgressVisibility");
}
}
問題は、このバインドが失敗していることです。その理由はわかりません。スヌープを使用すると、次のようになります
System.Windows.Data エラー: 40: BindingExpression パス エラー: 'ProgressVisibility' プロパティが 'object' ''ProgressIndicator' (Name='progressIndicator')' に見つかりません。BindingExpression:Path=ProgressVisibility; DataItem='ProgressIndicator' (Name='progressIndicator');
ターゲット要素は 'ProgressIndicator' (Name='progressIndicator') です。ターゲット プロパティは 'Visibility' (タイプ 'Visibility') です System.Windows.Data エラー: 40 : BindingExpression パス エラー: 'ProgressVisibility' プロパティが 'object' ''ProgressIndicator' (Name='progressIndicator')' に見つかりません。BindingExpression:Path=ProgressVisibility; DataItem='ProgressIndicator' (Name='progressIndicator');
ターゲット要素は 'ProgressIndicator' (Name='progressIndicator') です。ターゲット プロパティは 'Visibility' (タイプ 'Visibility') です System.Windows.Data エラー: 40 : BindingExpression パス エラー: 'ProgressVisibility' プロパティが 'object' ''ProgressIndicator' (Name='progressIndicator')' に見つかりません。BindingExpression:Path=ProgressVisibility; DataItem='ProgressIndicator' (Name='progressIndicator');
ターゲット要素は 'ProgressIndicator' (Name='progressIndicator') です。ターゲット プロパティは「Visibility」(タイプ「Visibility」)
バインディング エラーがあることを感謝しますがDataContext
、App.xaml.cs でメイン ウィンドウを設定しています。
MainWindow window = new MainWindow();
MainWindowViewModel mainWindowViewModel = new MainWindowViewModel();
// When the ViewModel asks to be closed, close the window.
EventHandler handler = null;
handler = delegate
{
mainWindowViewModel.RequestClose -= handler;
window.Close();
};
mainWindowViewModel.RequestClose += handler;
// Allow all controls in the window to bind to the ViewModel by setting the
// DataContext, which propagates down the element tree.
window.DataContext = mainWindowViewModel;
window.Show();
では、なぜバインディングが失敗するのでしょうか?
御時間ありがとうございます。