0

WCF気象サービスを使用していて、ID、説明、画像などの気象情報を受信して​​います。次のように戻ります。

<WeatherDescription>
    <WeatherID>1</WeatherID>
    <Description>Thunder Storms</Description>
    <PictureURL>
     http://ws.cdyne.com/WeatherWS/Images/thunderstorms.gif
    </PictureURL>
</WeatherDescription>

XAMLでは、dataGridにデータを次のように表示しています。

<sdk:DataGridTextColumn Header="ID" Binding="{Binding WeatherID}" />

上記のバインディングは、7日間の天気予報を返すが、天気の説明と同じ天気IDを返すサービスの別の関数に対するものです。次のように、コード側ですべての天気の説明の配列を作成しました。

public partial class MainPage : UserControl
{
    //array of weather descriptions
    private WeatherDescription[] weatherInformation;

    WeatherSoapClient weatherClient = new WeatherSoapClient();

    public MainPage()
    {
        InitializeComponent();
        weatherClient.GetWeatherInformationCompleted += new EventHandler<GetWeatherInformationCompletedEventArgs>(weatherClient_GetWeatherInformationCompleted);
        weatherClient.GetWeatherInformationAsync();
    }

    void weatherClient_GetWeatherInformationCompleted(object sender, GetWeatherInformationCompletedEventArgs e)
    {
        weatherInformation = e.Result;
    }
}
  1. 私がやりたいのは、その列からIDを取得し、天気の説明で指定されたURLを使用してそれを画像に変換するコンバーターを作成することです。

  2. SilverlightがGIFをサポートしていないことを知っているので、その画像をJPGに変換するハンドラーに送信したいと思います。

SilverlightとC#の両方にまったく新しいので、これらは私が本当に問題を抱えている2つのことです。よろしくお願いします!そして、私はまだ多くのC#を理解していないので、コードスニペットは私にとって最良の助けです。

4

1 に答える 1

0
  1. コンバーターの場合、次のようなことができます。

    <sdk:DataGrid>

    <sdk:DataGrid.Resources>
        <local:WeatherIdToImageConverter key="IdToImageConverter" />
    </sdk:DataGrid.Resources>
    ...
        <sdk:DataGridTemplateColumn>
           <sdk:CellTemplate>
               <DataTemplate>
                   <Image Source="{Binding WeatherID, Converter={StaticResource IdToImageConverter}}" />
                   ...
    
  2. コンバーターの実装では、ImageToolsライブラリ(http://imagetools.codeplex.com/)を使用してGIFとPNGの間で変換します(PNGはJPEGよりも高品質になります)。

于 2012-04-23T00:43:43.810 に答える