1

それぞれがさまざまな設定を持つ一連のタブ (基本的にはそれぞれ) を持つビューを作成したいと考えていContentControlます。次に、即座に更新したり、コントロール自体に関連付けられた更新ボタンを使用したりするのではなく、すべてのデータバインディングを更新するボタンが必要です

したがって、私のコントロールは MEF としてエクスポートされResourceDictionary、以下のようになります。

<ResourceDictionary ...>
<DataTemplate DataType="{x:Type vm:AdminViewModel}">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <TabControl Grid.Row="0">
            <TabItem Header="Tests">
                <ContentControl Content="{Binding ResultStorage}"/>
            </TabItem>
        </TabControl>
        <StackPanel Grid.Row="1" Orientation="Horizontal">
            <Button Content="Update"/>
            <Button Content="Cancel"/>
        </StackPanel>
    </Grid>
</DataTemplate>
</ResourceDictionary>

TestStorage は次のようになります。

<ResourceDictionary ...>
<DataTemplate DataType="{x:Type data:XmlResultStorage}">
    <StackPanel>
        <TextBlock Text="Result File Path:"/>
        <TextBox Text="{Binding Path=ResultPath, Source={x:Static properties:DataStorage.Default}, UpdateSourceTrigger=Explicit}"/>
        <TextBlock Text="Result File Location:"/>
        <TextBox Text="{Binding Path=ResultFilename, Source={x:Static properties:DataStorage.Default}, UpdateSourceTrigger=Explicit}"/>
    </StackPanel>
</DataTemplate>

私がやりたいのは、更新するボタンが押されて何らかの形で更新(UpdateSource?)を呼び出すときですが、そのContentControl方法がわかりません。

理想的な世界では、コード ビハインドはなく、MVVM などを介してすべて実行しますが、それが不可能な場合は、コード ビハインドで問題ありません。

だから私は2つの問題があります.aを介して手動でデータバインディングを更新するResourceDictionary方法と、その子を介してカスケードする方法を教えてくださいContentControls

4

0 に答える 0