在WPF中将控件组合在一起

时间:2014-10-13 04:20:21

标签: c# wpf

我正在构建一个需要显示文件名列表及其相应控件的WPF应用程序。现在我有一个带有一些列的Grid(例如,第1列是文件名的TextBlock,第2列是CheckBox,表示是否选择了这个文件,等等,每行都有一行文件名。)

除非触发行i中的控件时才有效,我必须搜索整个网格以查找行i中的其他控件并相应地更改它们。是否有自然方法将控件组合在一行中,以便轻松找到另一个控件?

注意:通过 natural ,我的意思是内置WPF。为此构建UnionFind不会被认为是自然的。

1 个答案:

答案 0 :(得分:1)

FI建议使用ItemsControl。像这样的东西

<ItemsControl ItemsSource="{Binding Files}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <Label Content="{Binding FileName}" />
                <CheckBox IsChecked="{Binding IsSelected}"/>
            </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>   

将您的模型List<MyModel>ObservableCollection<MyModel作为ItemsSource

public class MyModel
{
    public string FileName { get; set; }
    // And so on ...
}