2013-02-19 91 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

相關問題