1

各ルートノードとその子がバインディングソースのさまざまな種類の要約を表すWPFツリービュー(リアルタイムソースにバインド)のポインターまたは例を誰かが提供できますか?

謝罪 - 私は通常、このようなオープンな「サンプルコードを書く」という質問をしませんが、私は WPF に比較的慣れておらず、最善の方法で足場を固めるのに苦労しています。

例えば;

Year of Birth
 [] 80 (2)
 [] 85 (1)
 [] 90 (14)

Course
 [] Engineering (20)
 [] Accountancy (2)

Gender
 [] Male (10)
 [] Female (1)

たとえば、このツリービューは、観察可能な学生のリストに対してバインドされます (学生モデルには、生年月日、学習するコース、および性別が含まれます)。[] は、ユーザーが選択に基づいてデータソースをフィルタリングできるようにするチェックボックスを示します。

ps。私は MVVM アプローチを使用し、ReactiveUI の使用を計画しています。

4

2 に答える 2

1

基本から始めましょう - 実際にこのビューを表します:

IEnumerable<ICategoryTileViewModel> TreeView;

public interface ICategoryTileViewModel
{
    public string CategoryName { get; set; }
    public IEnumerable<IFilterValueTileViewModel> Children { get; set; }
}

public interface IFilterValueTileViewModel
{
    public bool Checked { get; set; }
    public string Description { get; set; }
    public int CurrentCount { get; set; }
}

TreeView を生成する方法は、まだ言及していないデータ ソースの外観によって異なります。ただし、ほぼ確実にGroupByオペレーターが関与します。

于 2013-02-21T19:37:43.157 に答える
0

これには、次のような HierarchicalDataTemplate を使用してツリー ビューのアイテム テンプレートを変更することが含まれます。

あなたの見解

<TreeView ItemsSource="{Binding Children, Mode=TwoWay}">
    <TreeView.ItemTemplate>
        <HierarchicalDataTemplate ItemsSource="{Binding Children, Mode=TwoWay}">
            <StackPanel Orientation="Horizontal" ToolTip="{Binding Description}">
                <!--You can add your checkbox here and remove the image-->
                <Image Source="{Binding Icon}" Height="16" Width="16"/>
                <!--You can add your checkbox here and remove the image-->
                <TextBlock Text="{Binding Name}" Margin="4,0,4,0"/>
            </StackPanel>
        </HierarchicalDataTemplate>
    </TreeView.ItemTemplate>
</TreeView>

VM はこのクラスから継承する必要があります

public abstract class VM
{
   public string Name {get; set;}
   public ObservableCollection<VM> Children {get; set;}
}

アプリケーションのデータ コンテキストは、ツリー ビューのアイテム ソースを指す Children を公開する必要があります。

これをツリー ビューの要約のアイデアに拡張する必要があります。

于 2013-02-21T20:02:06.897 に答える