0

Silverlightアプリケーションでint型またはdouble型のコレクションにバインドするよりもComboBoxがあります。これらのコレクションには、ユーザーが選択できる有効な値が含まれています。ComboBoxに「自動」オプションも必要です。私のコードでは、「自動」を-1として表しています。そこで、intのコレクション(コレクションに-1が含まれている可能性があります)を取得してComboBoxをバインドし、IValueConverterで-1を「自動」として表示する方法を見つけようとしています。ItemsSourceのBindingでConverterを設定しようとしましたが、フォーマットされたオプションを使用して新しいコレクションを作成するのに問題があります。

4

2 に答える 2

3

この質問を投稿する前にもう一度検索を試みることにし、ついに私の答えに出くわしました。この状況で重要なのは、ItemsSourceバインディングのコンバーターとしてIValueConverterを使用するのではなく、ItemTemplateを設定することです(私はこれをスタイルで使用します)。

<Style TargetType="ComboBox" x:Key="AutoComboBox">
    <Setter Property="ItemTemplate">
        <DataTemplate>
            <TextBlock Text="{Binding Converter={StaticResource autoConverter}}" />
        </DataTemplate>
    </Setter>
</Style>

autoConverterは、値が-1であるかどうかをチェックし、そうである場合は「Auto」を返すIValueConverterの単純な実装です。ConvertBackはその逆を行います。

于 2012-09-10T20:26:45.727 に答える
0

こんにちは以下はあなたを助けるかもしれない例です....

コンバーターを制御にバインド:-


<sdk:DataGridTextColumn x:Name = "clientReturnStatus" Binding = "{Binding atclientreturns、Converter = {StaticResource ReturnStatusConverter}、ConverterParameter = ReturnStatus、Mode = TwoWay}"
Header = "Return Status" Width = "110" />


メトを変換する:-

パブリックオブジェクトConvert(オブジェクト値、タイプtargetType、オブジェクトパラメータ、System.Globalization.CultureInfoカルチャ)

    {
        string Text = "";            

        if (value != null)
        {                
            if(value == -1)
            {
                  Text = "Auto";
            }
            else
            {

            }
        }
        return Text;
    }
于 2012-09-11T09:45:04.870 に答える