CodeBehind で割り当てられた ViewModel が、次のコードで実装された WPF 拡張コントロール 'BusyIndicator' で利用されていない理由を説明できますか?
ビューモデルの実装:
public partial class App : Application {
private void OnStartup(object sender, StartupEventArgs seArgs) {
MainWindowView mwv = new MainWindowView();
mwv.DataContext = new DataSetViewModel(new DataSetModel());
mwv.Show();
}
}
XAML:
<kit:BusyIndicator IsBusy="True" DisplayAfter="0" >
<kit:BusyIndicator.BusyContentTemplate>
<DataTemplate>
<StackPanel Margin="4">
<TextBlock Text="{Binding Path=WaitProgressUploadTitle}" FontWeight="Bold" HorizontalAlignment="Center"/>
<StackPanel Margin="4">
<TextBlock Text="{Binding Path=WaitProgressUploadContent}" />
<ProgressBar Value="40" Height="15"/>
</StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Content="Pause" HorizontalAlignment="Right" Margin="0 0 2 0"/>
<Button Grid.Column="1" Content="Cancel" HorizontalAlignment="Left" Margin="2 0 0 0"/>
</Grid>
</StackPanel>
</DataTemplate>
</kit:BusyIndicator.BusyContentTemplate>
<kit:BusyIndicator.OverlayStyle>
<Style TargetType="Rectangle">
<Setter Property="Fill" Value="#ffffeeee"/>
</Style>
</kit:BusyIndicator.OverlayStyle>
<kit:BusyIndicator.ProgressBarStyle>
<Style TargetType="ProgressBar">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</kit:BusyIndicator.ProgressBarStyle>
<StackPanel>
<kitdg:DataGridControl Name="DataPreview" ItemsSource="{Binding Path=dvLbSelection}" Visibility="{Binding Path=FileOpenBad,Converter={StaticResource errorVisibility}}" ReadOnly="True" />
<TextBlock Text="{Binding Path=FileOpenText}" Margin="0,100,0,0" HorizontalAlignment="Center" MaxWidth="675" TextAlignment="Center" FontSize="20" Visibility="{Binding Path=FileOpenGood,Converter={StaticResource errorVisibility}}" />
</StackPanel>
</kit:BusyIndicator>
VS2010 の出力ウィンドウに次のように表示されます。
System.Windows.Data エラー: 40: BindingExpression パス エラー: 'WaitProgressUploadTitle' プロパティが 'object' ''String' (HashCode=-1880398257)' に見つかりません。BindingExpression:Path=WaitProgressUploadTitle; DataItem='String' (HashCode=-1880398257); ターゲット要素は 'TextBlock' (Name='') です。ターゲット プロパティは 'Text' (タイプ 'String') です System.Windows.Data エラー: 40: BindingExpression パス エラー: 'WaitProgressUploadContent' プロパティが 'object' ''String' (HashCode=-1880398257)' に見つかりません。BindingExpression:Path=WaitProgressUploadContent; DataItem='String' (HashCode=-1880398257); ターゲット要素は 'TextBlock' (Name='') です。ターゲット プロパティは 'テキスト' (タイプ '文字列') です System.Windows.Data エラー: 40 : BindingExpression パス エラー: 'connectionStringValidity' プロパティが 'object' ''DataSetViewModel' (HashCode=3476046)' に見つかりません。BindingExpression:Path=connectionStringValidity; DataItem='DataSetViewModel' (HashCode=3476046); ターゲット要素は 'Image' (Name='errorInvalidSQLConnection') です。ターゲット プロパティは 'ToolTip' (タイプ 'Object') です