0

Exponential を表示するコードを wpf で記述しました。そのための 2 つの数値を受け入れることで、1 つのコンバーター関数とコードを作成しました。しかし、このコードを記述した後、「Microsoft Visual Studio で問題が発生しました。 Closed"..次に、[送信しない] をクリックすると、Vs2010 が閉じます。そのために何が問題になる可能性がありますか?コードはここに添付されています...

namespace WpfTutSamples
{

    public partial class Exponential : Window
    {
        public Exponential()
        {
            InitializeComponent();
        }
        public double GetValue(double number, double exponent)
        {
            double value = Math.Pow(number, exponent);
            return value;

        }
    }
}

-----XmlCode

<Window x:Class="WpfTutSamples.Exponential"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WpfTutSamples"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"
        Title="Exponential" Height="300" Width="300">

    <Window.Resources>
        <ObjectDataProvider x:Key="expCalculator" MethodName="GetValue" ObjectType="{x:Type local:Exponential}">
            <ObjectDataProvider.MethodParameters>
                <sys:Double>4</sys:Double>
                <sys:Double>2</sys:Double>
            </ObjectDataProvider.MethodParameters>
        </ObjectDataProvider>
    </Window.Resources>


    <Grid>

        <Label Content="Number" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="2"> </Label>

        <TextBox HorizontalAlignment="Left" x:Name="txtNumber" Height="30" VerticalAlignment="Top" Margin="70,1" Width="60"
                 Text="{Binding Source={StaticResource expCalculator}, Path=MethodParametes[0], Mode=OneWayToSource, BindsDirectlyToSource=True}"></TextBox>


        <Label Content="Number" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="2,40"> </Label>
        <TextBox HorizontalAlignment="Left" x:Name="txtpower" Height="30" VerticalAlignment="Top" Margin="70,40" Width="60"
                 Text="{Binding Source={StaticResource expCalculator}, Path=MethodParametes[1], Mode=OneWayToSource, BindsDirectlyToSource=True}"></TextBox>


<Label Content="Result" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="2,80"> </Label>
        <TextBox HorizontalAlignment="Left" x:Name="txtResult" Height="30" VerticalAlignment="Top" Margin="70,80" Width="60"
                 Text="{Binding Source={StaticResource expCalculator}}"></TextBox>

    </Grid>
</Window>
4

1 に答える 1

1

答え

多分スタックオーバーフローのせい?class' からclass Exponential' メソッドを参照すると、クラス インスタンスが作成され、インスタンス化されます。ExponentialObjectDataProviderExponentialObjectDataProvider

説明

ObjectDataProviderメソッドへのバインディングは、それを呼び出すメソッドを含むクラスをインスタンス化する必要があります。そのため、無限の再発があります。

回避策

メソッドを別のクラスに配置しObjectDataProvider、Exponential.xamlで参照します。

于 2012-04-26T10:32:32.390 に答える