【发布时间】:2023-03-27 12:58:01
【问题描述】:
我需要将 TextBlock 的文本设置为“名称(具有非空属性的项目数)”之类的内容。现在,我使用 ItemsSource.Count 使用整个集合的项目数来执行此操作。
<TextBlock x:Name="textBlockHeader" >
<TextBlock.Text>
<MultiBinding Converter="{StaticResource headerCreator}" x:Name="multiBinder">
<Binding ElementName="trackingTable" Path="Name" />
<Binding ElementName="trackingsGrid" Path="ItemsSource.Count" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
为此,我正在使用 IMultiValueConverter:
internal class HeaderCreator : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
// Based on this xaml
////<Binding ElementName="trackingTable" Path="Name" /> values[0]
////<Binding ElementName="trackingsGrid" Path="ItemsSource.Count" /> values[1]
return values[0] + " (" + values[1] + ")";
}
trackingsGrid 是下面定义的 DataGrid(此处未显示代码),绑定到具有 TrackingData 对象的集合。 TrackingData 有一个名为 Tracking 的属性。我只需要计算 ObservableCollection 中具有此属性的项目不为空。我怎样才能做到这一点?
public class TrackingData : INotifyPropertyChanged
{
public Model.ITracking Tracking { get; set; }
...
}
提前致谢。
【问题讨论】:
标签: c# .net wpf xaml data-binding