gpt4 book ai didi

c# - 使用基于 ReactiveUI C# 的绑定(bind)绑定(bind)到 DataGridColumn

转载 作者:太空宇宙 更新时间:2023-11-03 14:42:40 28 4
gpt4 key购买 nike

我正在学习在 WPF 中使用 ReactiveUI。我有一个具有 IObservableCollection 的应用程序,我将其绑定(bind)到 DataGrid。

    <DataGrid Grid.Row="3" Grid.ColumnSpan="2" AutoGenerateColumns="False" ScrollViewer.VerticalScrollBarVisibility="Visible" x:Name="validationResults" HorizontalAlignment="Stretch" IsReadOnly="True" SelectionMode="Extended" SelectionUnit="Cell">
<DataGrid.Columns>
<DataGridTextColumn Header="Item Id" x:Name="vrContractID" Binding="{Binding Path=ItemId, Mode=OneWay}" MinWidth="50" />
<DataGridTextColumn Header="Item #" Binding="{Binding Path=ItemNumber, Mode=OneWay}" MinWidth="50"/>
<DataGridCheckBoxColumn Header="Valid?" Binding="{Binding Path=IsValid, Mode=OneWay}" MinWidth="5"/>
<DataGridTextColumn Header="Error Code" Binding="{Binding Path=ErrorCode, Mode=OneWay}" MinWidth="50"/>
<DataGridTextColumn Header="Error Message" Binding="{Binding Path=ErrorMessage, Mode=OneWay}" Width="*"/>
</DataGrid.Columns>
</DataGrid>

我尝试不使用基于 XAML 的绑定(bind),就像我在上面向您展示的那样,但是,我在理解如何使用类似以下内容的代码隐藏文件中完成这种绑定(bind)样式时遇到了问题:

this.Bind()

或者这个:

this.OneWayBind()

我在绑定(bind) DataTemplates 和 MultiBinding 时遇到过类似的问题,这让我怀疑我是否遗漏了 ReactiveUI/MVVM 的设计模式。

如有任何帮助,我们将不胜感激。

PS:如果我必须使用 xaml 绑定(bind)来绑定(bind)它 - 为什么我不在 xaml 中完成所有绑定(bind)?有 2 个地方可以发生绑定(bind)感觉有点奇怪。

最佳答案

DataTemplates 的解决方案是不设置一个,rxui 绑定(bind)会自动提供一个并查找已注册的IViewFor<TViewModel>。为 View 模型注册并显示该 View 。

您可以使用多重绑定(bind) Observable.CombineLatest多个WhenAny运算符,然后使用 BindTo .

使用数据网格,您可以通过编程方式生成列,然后在这些列上使用 rxui 绑定(bind)。过去我为它使用了构建器模式。开箱即用的 DataGrid 很难与 rxui 绑定(bind)结合使用。

关于c# - 使用基于 ReactiveUI C# 的绑定(bind)绑定(bind)到 DataGridColumn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56063414/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com