有没有人知道是否以及如何ListBox
根据属性的值禁用数据绑定中的项目?
我想要一个DataTrigger
,当某个属性是false
,禁用这个项目(使其无法选择)而不影响其中的其他项目ListBox
.
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Name="textBlock" Text="{Binding Description}"/>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding IsEnabled}" Value="False">
??
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud) 我正在开发一个wpf应用程序,其中包含一个包含大量数据(10 000到100 000)行的列表视图.用户可以将各种过滤器应用于此列表视图,使过滤器逻辑非常先进(并且速度慢).目前,我的代码的相关部分如下所示:
ICollectionView view = CollectionViewSource.GetDefaultView(hugeList.ItemsSource);
view.Filter = new Predicate<object>(FilterCallback);
private bool FilterCallback(object item)
{
//Filter logic
}
Run Code Online (Sandbox Code Playgroud)
但是这会在UI线程中运行并在过滤时阻止整个应用程序,这会给用户带来非常糟糕的体验.所以我向大家提出的问题是:有没有人知道在wpf中过滤listview的"更好"的方式,还是应该过滤底层代码ObservableCollection
?
有没有人知道如何在WPF中进行拖放操作时获得正确的鼠标位置?我已经使用Mouse.GetPosition()
但返回的值不正确.
wpf应用程序中的默认DataTemplate显示.ToString()
方法的结果.我正在开发一个默认的DataTemplate应该不显示的应用程序.
我试过了:
<Grid.Resources>
<DataTemplate DataType="{x:Type System:Object}">
<Grid></Grid>
</DataTemplate>
</Grid.Resources>
Run Code Online (Sandbox Code Playgroud)
但这不起作用.有没有人知道如果没有为应用程序中的每个类类型指定特定的DataTemplate,这是否可行?
在不使用源代码管理和自动构建功能的情况下使用Team Foundation Server的项目管理功能是否有意义?我们在非.NET环境中做敏捷,并使用TFS来管理项目,但继续使用当前使用的源代码控制和构建软件.
提前致谢,
我在WPF(xaml)中使用Grid,并且在ColumnDefinition中使用MinWidth属性时我有一些奇怪的效果.例如,当我使用9 ColumnDefinition并且每个ColumnDefinition具有'Width ="*"'属性并且其中一个中间列也具有MinWidth属性时,则其他列的大小是错误的.
好吧,很难描述,但这个xaml代码很好地说明了它:
<Grid Width="500">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*" MinWidth="250"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Background="Green"/>
<Border Grid.Column="1" Background="Blue"/>
<Border Grid.Column="2" Background="Red"/>
<Border Grid.Column="3" Background="Yellow"/>
<Border Grid.Column="4" Background="Purple"/>
<Border Grid.Column="5" Background="Orange"/>
<Border Grid.Column="6" Background="Azure"/>
<Border Grid.Column="7" Background="LightBlue"/>
<Border Grid.Column="9" Background="LightGreen"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)
运行此xaml代码时,您将看到前3列的宽度与最后5列的宽度不同.我希望所有这些都具有相同的宽度.
有谁知道这是一个错误.如果有办法正确地做到这一点.
提前致谢.