Fixed. Пришлось связать максимум и значение, и это сработало. В тесте я привязал оба к Int32 (не тестировал привязку к двойному). Microsoft Я думаю, что это ошибка.
<ProgressBar Grid.Row="8" Grid.Column="0" HorizontalContentAlignment="Stretch" Height="20" Maximum="{Binding Path=DF.WFBatchFolderStatus.DocCount}" Value="{Binding Path=DF.WFBatchFolderStatus.DocCountComplete}" PresentationTraceSources.TraceLevel="High" />
Что такое протокол. Если я отвечу на свой вопрос, я должен удалить вопрос?
Я получаю сообщение об ошибке при попытке привязать значение для индикатора выполнения. XamlParseException 'Установить свойство' System.Windows.Controls.Primitives.RangeBase.Value 'вызвала исключение.' Grid.Row 8 не работает, а Grid.Row 9 не работает. Когда я ставлю фиксированные значения (Grid.Row 6 и Grid.Row 7), это работает. Я могу получить значение, к которому хочу привязаться, в TextBlock (Grid.Row 5). Я пробовал привязку к Double и Int 32. Согласно документации, Minimum, Maximum и Value являются double. Рассчитанное значение, на которое оно не работает, равно 2 (и оно терпит неудачу на других значениях). Заранее спасибо, и я отмечу ответ.
<TextBlock Grid.Row="5" Grid.Column="0" HorizontalAlignment="Left" Text="{Binding Path=DF.WFBatchFolderStatus.DocPctComplete, StringFormat='Document Pct Count: {0}'}" PresentationTraceSources.TraceLevel="High" />
<ProgressBar Grid.Row="6" Grid.Column="0" HorizontalContentAlignment="Stretch" Height="20" Minimum="0" Maximum="100" Value="40" />
<ProgressBar Grid.Row="7" Grid.Column="0" HorizontalContentAlignment="Stretch" Height="20" Minimum="0E0" Maximum="100E0" Value="60E0" />
<ProgressBar Grid.Row="8" Grid.Column="0" HorizontalContentAlignment="Stretch" Height="20" Minimum="0" Maximum="100" Value="{Binding Path=DF.WFBatchFolderStatus.DocPctCompleteInt}" PresentationTraceSources.TraceLevel="High" />
<ProgressBar Grid.Row="9" Grid.Column="0" HorizontalContentAlignment="Stretch" Height="20" Minimum="0E0" Maximum="100E0" Value="{Binding Path=DF.WFBatchFolderStatus.DocPctComplete}" PresentationTraceSources.TraceLevel="High" />
public Double DocPctComplete
{
get
{
if (BatchFolderStatus == enumBatchFolderStatus.Waiting) return 0;
if (BatchFolderStatus == enumBatchFolderStatus.WaitQC) return 0;
if (BatchFolderStatus == enumBatchFolderStatus.Complete) return 100;
if (DocCount < 1) return 0;
if (DocCountComplete < 1) return 0;
double docPctComplete = (Convert.ToDouble(DocCountComplete) / Convert.ToDouble(DocCount)) * 100E0;
Debug.WriteLine("docPctComplete " + docPctComplete.ToString());
return docPctComplete;
}
}
public Int32 DocPctCompleteInt
{
get
{
if (BatchFolderStatus == enumBatchFolderStatus.Waiting) return 0;
if (BatchFolderStatus == enumBatchFolderStatus.WaitQC) return 0;
if (BatchFolderStatus == enumBatchFolderStatus.Complete) return 100;
if (DocCount < 1) return 0;
if (DocCountComplete < 1) return 0;
double docPctComplete = (Convert.ToDouble(DocCountComplete) / Convert.ToDouble(DocCount)) * 100E0;
Debug.WriteLine("docPctComplete " + docPctComplete.ToString());
Int32 docPctCompleteInt = Convert.ToInt32(docPctComplete);
Debug.WriteLine("docPctCompleteInt " + docPctCompleteInt.ToString());
return docPctCompleteInt;
}
}