【发布时间】:2020-10-09 12:12:09
【问题描述】:
我想显示上传文件的进度条
xaml
<ProgressBar HorizontalAlignment="Left" Height="30" Margin="145,6,0,0" VerticalAlignment="Top" Width="469" Value="{Binding progressBar1,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}" Grid.Row="1" />
这是我的进度控制
model.cs
public string progressBar1
{
get
{
return _ProgressBar;
}
set
{
_ProgressBar = value;
OnPropertyChanged("progressBar1");
}
}
视图模型
private Files _FileDetails;
public Files FilesDetails
{
get
{
return _FileDetails;
}
set
{
_FileDetails = value;
}
}
//some code
void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
FilesDetails.progressBar1.Value = e.ProgressPercentage;
if ((progressBar1.Value / 2) == 0)
{
lblStatus.Content = "Downloading.";
}
else if ((progressBar1.Value / 3) == 0)
{
lblStatus.Content = "Downloading..";
}
else if ((progressBar1.Value / 5) == 0)
{
lblStatus.Content = "Downloading...";
}
lblStatus.Content = "Download " + filesizedownloaded.ToString("F2") + " / " + filesize.ToString("F2")
+ " ( " + progressBar1.Value.ToString() + " ) % Complete.";
}
在worker_ProgressChanged 函数中,我无法访问progressBar1 的值。在“value”下显示错误
string' 不包含 'Value' 的定义并且不可访问 扩展方法“值”接受“字符串”类型的第一个参数 可以找到(您是否缺少 using 指令或程序集 参考?)
悬停值时显示上述错误
【问题讨论】:
-
您正在使用
progressBar1.Value从模型访问您的progressBar1,它是一个字符串并且没有对值的引用。你的意思可能是FilesDetails.progressBar1.Value -
FilesDetails.progressBar1.Value = e.ProgressPercentage;我已经尝试过这个并为“值”显示错误。错误信息已添加到我的问题中
-
所有progressBar1.Value都显示错误。值下的错误指示器
-
我认为当我写“FilesDetails.progressBar1”时它认为它是一个字符串。所以我不能在那里使用值。但我想分配一个值以便我必须显示百分比
-
清除 "public int progressBar1=0;"在顶部..但显示“运算符'/'不能应用于'string'和'int'类型的操作数”
标签: c# wpf mvvm progress-bar