绑定到ViewModel中的对象属性

绑定到ViewModel中的对象属性

问题描述:

不知道为什么这不起作用...下面我是我的ViewModel设置为我的View DataContext。绑定到ViewModel中的对象属性

public class UploadViewModel : CrudVMBase 
    { 
     #region Commands 
     public CommandVM UploadButtonCommand { get; set; } = 
      new CommandVM 
      { 
       CommandDisplay = "Perform Upload", 
       IconGeometry = App.Current.Resources["pencil30"] as Geometry, 
       Message = new CommandMessage { Command = CommandType.UploadFromCamera } 
      }; 
     #endregion End Commands 

     #region Public Properties 
     UploadInitiation UploadObject { get; set; } = new UploadInitiation(); 
     #endregion End Public Properties 

     public UploadViewModel() 
     { 

     } 

下面是UploadInitiation类

public class UploadInitiation : Common.NotifyUIBase 
    { 
     #region Public Properties 
      public ObservableCollection<UploadStep> Steps { get; set; } = new ObservableCollection<UploadStep>(); 
      public int UploadProgress { get; set; } = 45; 
      public string UploadTask { get; set; } = "Idle..."; 
      public bool UploadEnabled { get; set; } = false; 
      public bool UploadBegin { get; set; } = false; 
     #endregion END Public Properties 

     public UploadInitiation() 
     { 
      // Populate steps required, ensure upload returns UI updates 
      Steps.Add(new UploadStep { Message = "Seperate upload to new thread...", Complete = false, Error = null }); 
      Steps.Add(new UploadStep { Message = "Generate new file names...", Complete = false, Error = null }); 
      Steps.Add(new UploadStep { Message = "Render Thumbnails, add to database...", Complete = false, Error = null }); 
      Steps.Add(new UploadStep { Message = "Move images ready for print...", Complete = false, Error = null }); 
     } 
    } 

这是我的绑定,你可以看到我尝试绑定到UploadProgress物业。

<ProgressBar Style="{StaticResource CircularProgress}" Width="180" Value="{Binding UploadObject.UploadProgress}" /> 

以下是错误

System.Windows.Data Error: 40 : BindingExpression path error: 'UploadObject' property not found on 'object' ''UploadViewModel' (HashCode=33902366)'. BindingExpression:Path=UploadObject.UploadProgress; DataItem='UploadViewModel' (HashCode=33902366); target element is 'ProgressBar' (Name=''); target property is 'Value' (type 'Double')

你需要做财产申报的范围公共,否则就会被默认为私有。因此,绑定时不可见。

public UploadInitiation UploadObject { get; set; } = new UploadInitiation(); 
+0

我真是个白痴!我确信我已经这么做了......我甚至多次阅读它!谢谢! –