3

私はbusyindicatorを使用し、datatempleteを設定したという点でwpfにいくつかのコードがあり、アプリケーションでmvvmパターンを使用し、その上でbusyindicatorを使用したいのですが、busyindicaまたはdatatemplete内でテキストブロックをバインドする方法がわかりません。私のコードは次のようになります

<extended:BusyIndicator Name="_busyIndicator">
    <extended:BusyIndicator.BusyContentTemplate>
        <DataTemplate>
            <StackPanel Margin="4">
                <TextBlock Text="Downloading Email" FontWeight="Bold" HorizontalAlignment="Center" Name="Dhaval"/>
                <StackPanel Margin="4">
                    <TextBlock Text="Downloading message 4/10..."/>
                    <ProgressBar Value="40" Height="15" x:Name="Progress_Dhaval"/>
                </StackPanel>
            </StackPanel>
        </DataTemplate>
    </extended:BusyIndicator.BusyContentTemplate>

4

1 に答える 1

10

RelativeSource で Binding を使用できます。

ViewModel にこのプロパティを追加します。

        private string _busyText;
        public string BusyText
        {
            get { return _busyText; }
            set { _busyText = value; RaisePropertyChanged(() => BusyText); }
        }

そして、次の行を変更します。

<TextBlock Text="Downloading message 4/10..."/>

これについて:

<TextBlock Text="{Binding Path=DataContext.BusyText, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}" />
于 2012-09-20T17:13:45.007 に答える