1

プロジェクト設定で StringCollection を定義しました。ComboBox で値を使用したい。

xamlyにアクセスする方法はありますか?

私は試した:

<CollectionViewSource Source="{x:Static src:MySettings.Default.MyCollection}" />
<CollectionViewSource 
    Source="{Binding Source={x:Static src:MySettings.Default.MyCollection}}" />

****src** はプロジェクトの xmlns です*

「タイプ src:MySettings.Default が見つかりませんでした」と表示されます。

問題は、MySettings が、MySettings のスレッドセーフなインスタンスである Default プロパティを提供するクラスであることです。新しい on をインスタンス化するのではなく、Default プロパティからコレクションを取得したいのです。

私が気付いていない他の方法はありますか、おそらく ObjectDataProvider は静的オブジェクトにアクセスできますか?

App.xaml で、MySettings クラスのインスタンスである MySettings.Default を返すグローバル リソースを作成し、そのすべてのプロパティにアクセスできるのではないかと考えました。それを試してみますが、簡単な方法を好みます。

4

2 に答える 2

3

私は常にx:Static Markup Extensionを使用してそれを行ってきました。重要なのは、次のようにソースSettings.Defaultとパスを目的の設定に設定することです。

<Window x:Class="SettingsBindSample.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:s="clr-namespace:SettingsBindSample.Properties"
    Title="Window1" Height="300" Width="300">
    <Window.Resources>
        <CollectionViewSource x:Key="MyItems" 
      Source="{Binding MyCollection, Source={x:Static s:MySettings.Default}}" />
    </Window.Resources>
    <StackPanel>
        <ComboBox ItemsSource="{Binding Source={StaticResource MyItems}}" />
    </StackPanel>
</Window>
于 2010-04-22T05:08:01.363 に答える