我正在构建一个需要显示文件名列表及其相应控件的WPF应用程序。现在我有一个带有一些列的Grid(例如,第1列是文件名的TextBlock
,第2列是CheckBox
,表示是否选择了这个文件,等等,每行都有一行文件名。)
除非触发行i
中的控件时才有效,我必须搜索整个网格以查找行i
中的其他控件并相应地更改它们。是否有自然方法将控件组合在一行中,以便轻松找到另一个控件?
注意:通过 natural ,我的意思是内置WPF。为此构建UnionFind
不会被认为是自然的。
答案 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 ...
}