2013-02-19 65 views
0

我试图使用ViewModel的属性为WPF Extended ToolKit中的控件BusyIndi​​cator分配文本值。提供的控件示例使用DataTemplate来分配进度文本。静态分配文本很好,但是当试图访问来自虚拟机的值来分配值时会导致绑定错误。从WPF UserControl的<DataTemplate>中访问VM

public partial class App : Application { 

     private void OnStartup(object sender, StartupEventArgs seArgs) { 
      MainWindowView mwv = new MainWindowView(); 
      mwv.DataContext = new DataSetViewModel(new DataSetModel()); 
      mwv.Show(); 
     } 
} 

视图控制工作,除了从VM获得内容字符串:

<kit:BusyIndicator IsBusy="{Binding Path=ProcessingData,Converter={StaticResource busyIndicator}}" 
           DisplayAfter="0" 
              > 


    <kit:BusyIndicator.BusyContentTemplate> 
     <DataTemplate> 
      <StackPanel Margin="4"> 

       <!-- Output Error is 'WaitProgressUploadTitle' property not found on 'object' ''String' (HashCode=-775806441)'... --> 
       <!-- Output Error is 'WaitProgressUploadContent' property not found on 'object' ''String' (HashCode=-775806441)'... --> 
       <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> 

     <TextBlock Text="CONTENTCONTENTCONTENTCONTENT" Margin="0,100,0,0" HorizontalAlignment="Center" MaxWidth="675" TextAlignment="Center" FontSize="20" Visibility="{Binding Path=FileOpenGood,Converter={StaticResource errorVisibility}}" Background="Cornsilk" /> 

    </kit:BusyIndicator> 

回答

0

当你与ContentTemplateDataTemplate结合的工作是针对由

VM的分配在app.xaml.cs处理Content属性ContentControl而不是其DataContext

Just set

BusyContent={Binding} 

btw。正如您从错误中看到的那样,绑定对象的类型是string