0

テキストコントロールのリストがある既存のビューから拡張機能を作成しようとしています。新しいプロジェクトでは、このコントロールを使用して、これらのテキストボックスの1つをラジオボタンに変更します。

MVVMを使用すると、コードを複製せずに同じコードを簡単に使用できますが、XAMLビューの場合、コピーを作成せずにこの変更を行う良い方法は見つかりません。

例:

メインユーザーコントロールを備えたコアプロジェクト

<UserControl x:Class="SilverlightApplication4.MainPage" Name="test"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

    <Grid x:Name="LayoutRoot" Background="White">
        <StackPanel>
            <TextBlock>
            asdfasdf
            this is a test
            </TextBlock>
            <Button Height="120" Name="asdf" Content="This is a Button">

            </Button>
        </StackPanel>

    </Grid>
</UserControl>

これで、TextBlockを別のプロジェクトに変更したい2番目のプロジェクトがあります。

<UserControl x:Class="SilverlightApplication1.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"
             xmlns:core="clr-namespace:SilverlightApplication4;assembly=SilverlightApplication4" d:DesignHeight="300" d:DesignWidth="400">
<core:MainPage>
   <!-- how do i change the type of child elements?-->
</core:MainPage>

</UserControl>
4

1 に答える 1

1

解決策は、ContentControlを使用し、Caliburn.Microを介してViewModelにバインドすることです。

他の質問(XAMLセクションの下)に例とコードを追加しました:EF/Silverlightアプリケーションのプロジェクト構造

于 2012-05-22T14:14:00.860 に答える