Значение привязки индикатора выполнения - PullRequest
1 голос
/ 26 августа 2011

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;
        }
    }

Ответы [ 2 ]

3 голосов
/ 27 августа 2011

Fixed. Пришлось связать максимум и значение, и это сработало. В тесте я привязал оба к Int32 (не тестировал привязку к двойному). Microsoft Я думаю, что это ошибка. Если максимум - это XAML, но значение в привязке, то оно терпит неудачу (или мне не удалось).

0 голосов
/ 26 августа 2011

Ожидается ли удвоение от 0,0 до 1,0?

Не должно, но это исправит?

Кроме того, я обычно указываю двойные константы в коде, например: 0.0D, 1.0D, 100.0D

...