如何使用 TabItem 名称参数调用 XAML 中的绑定方法?

2024-01-06

我有一个在 XAML 中绑定的对象实例。它有一个方法,将返回给我其他对象的列表(根据我传递给此方法的属性值,它将返回具有该属性值的所有对象)。

<ObjectDataProvider ObjectInstance="_this.DataContext" MethodName="GetListByCategory" x:Key="List">
        <ObjectDataProvider.MethodParameters>
            <System:String>Windows</System:String>
        </ObjectDataProvider.MethodParameters>
    </ObjectDataProvider> 

我(最终)想在带有一些复杂数据模板的选项卡上显示此列表。但不要超越自己。

我想要获取应在 TabControl 内的特定 TabItem 上显示的所有对象(具有与 TabItem 的名称或标题匹配的类别的对象 - 这是在方法中完成的)。如何将相关 TabItem 的标题或名称传递给我的绑定方法?

请记住,我需要绑定到此绑定方法的返回值,以显示在 TabItem 的 DataTemplate 中。我不知道这是否一定与问题的答案相关,但我想确保我清楚地定义了它。


不幸的是MethodParameters of an ObjectDataProvider不能直接绑定。

您可以通过使用来解决这个问题TwoWay or OneWayToSource捆绑。这是一个使用的示例Directory.GetFiles作为你的替代品GetListByCategory method:

<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:sys="clr-namespace:System;assembly=mscorlib"
      xmlns:io="clr-namespace:System.IO;assembly=mscorlib"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid.Resources>
        <x:Array x:Key="directories" Type="{x:Type sys:String}">
            <sys:String>C:\</sys:String>
            <sys:String>C:\Windows\</sys:String>
            <sys:String>C:\Windows\System32\</sys:String>
        </x:Array>
        <ObjectDataProvider x:Key="fileList" ObjectType="{x:Type io:Directory}" MethodName="GetFiles">
            <ObjectDataProvider.MethodParameters>
                <!-- Initial value, this will get wiped out by the Binding below. -->
                <sys:String>C:\</sys:String>
            </ObjectDataProvider.MethodParameters>
        </ObjectDataProvider>
    </Grid.Resources>
    <TabControl ItemsSource="{StaticResource directories}">
        <TabControl.ItemContainerStyle>
            <Style TargetType="{x:Type TabItem}">
                <Setter Property="ContentTemplate">
                    <Setter.Value>
                        <DataTemplate DataType="{x:Type sys:String}">
                            <ListBox ItemsSource="{Binding Source={StaticResource fileList}}"/>
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </TabControl.ItemContainerStyle>
        <TabControl.SelectedItem>
            <Binding Source="{StaticResource fileList}"    
                     Path="MethodParameters[0]"
                     BindsDirectlyToSource="True"  
                     Mode="OneWayToSource"/>
        </TabControl.SelectedItem>
    </TabControl>
</Grid>

The TabControl.SelectedItem绑定到ObjectDataProvider.MethodParameters[0]使用 OneWayToSource,这样当我们更改选项卡时,方法参数就会更改为新目录。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 TabItem 名称参数调用 XAML 中的绑定方法? 的相关文章

  • 确保 StreamReader 不会挂起等待数据

    下面的代码读取从 tcp 客户端流读取的所有内容 并且在下一次迭代中它将仅位于 Read 上 我假设正在等待数据 我如何确保它不会在没有任何内容可供读取时返回 我是否必须设置低超时 并在失败时响应异常 或者有更好的办法吗 TcpClient
  • 提交后禁用按钮

    当用户提交付款表单并且发布表单的代码导致 Firefox 中出现重复发布时 我试图禁用按钮 去掉代码就不会出现这个问题 在firefox以外的任何浏览器中也不会出现这个问题 知道如何防止双重帖子吗 System Text StringBui
  • 复制 std::function 的成本有多高?

    While std function是可移动的 但在某些情况下不可能或不方便 复制它会受到重大处罚吗 它是否可能取决于捕获变量的大小 如果它是使用 lambda 表达式创建的 它依赖于实现吗 std function通常被实现为值语义 小缓
  • C中的malloc内存分配方案

    我在 C 中尝试使用 malloc 发现 malloc 在分配了一些内存后浪费了一些空间 下面是我用来测试 malloc 的一段代码 include
  • 错误:表达式不产生值

    我尝试将以下 C 代码转换为 VB NET 但在编译代码时出现 表达式不产生值 错误 C Code return Fluently Configure Mappings m gt m FluentMappings AddFromAssemb
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 回发后刷新时提示确认表单重新提交。我做错了什么?

    我有一个以空白 默认状态启动的仪表板 我让用户能够将保存的状态加载到仪表板中 当他们单击 应用 按钮时 我运行以下代码 function CloseAndSave var radUpload find radUpload1ID var in
  • 由 IHttpClientFactory 注入时模拟 HttpClient 处理程序

    我创建了一个自定义库 它会自动为依赖于特定服务的 Polly 策略设置HttpClient 这是使用以下方法完成的IServiceCollection扩展方法和类型化客户端方法 一个简化的例子 public static IHttpClie
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • 在 C 中初始化变量

    我知道有时如果你不初始化int 如果打印整数 您将得到一个随机数 但将所有内容初始化为零似乎有点愚蠢 我问这个问题是因为我正在评论我的 C 项目 而且我对缩进非常直接 并且它可以完全编译 90 90 谢谢 Stackoverflow 但我想
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 不同类型指针之间的减法[重复]

    这个问题在这里已经有答案了 我试图找到两个变量之间的内存距离 具体来说 我需要找到 char 数组和 int 之间的距离 char data 5 int a 0 printf p n p n data 5 a long int distan
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • Oracle Data Provider for .NET 不支持 Oracle 19.0.48.0.0

    我们刚刚升级到 Oracle 19c 19 3 0 所有应用程序都停止工作并出现以下错误消息 Oracle Data Provider for NET 不支持 Oracle 19 0 48 0 0 我将 Oracle ManagedData
  • 如何从 ODBC 连接获取可用表的列表?

    在 Excel 中 我可以转到 数据 gt 导入外部数据 gt 导入数据 然后选择要使用的数据源 然后在提供登录信息后 它会给我一个表格列表 我想知道如何使用 C 以编程方式获取该列表 您正在查询什么类型的数据源 SQL 服务器 使用权 看
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List
  • 如何将 PostgreSql 与 EntityFramework 6.0.2 集成? [复制]

    这个问题在这里已经有答案了 我收到以下错误 实体框架提供程序类型的 实例 成员 Npgsql NpgsqlServices Npgsql 版本 2 0 14 2 文化 中性 PublicKeyToken 5d8b90d52f46fda7 没

随机推荐

  • 为什么 Haskell/GHC 可执行文件的文件大小如此之大? [复制]

    这个问题在这里已经有答案了 可能的重复 用 GHC 编译成巨大的二进制文件的小型 Haskell 程序 https stackoverflow com questions 6115459 small haskell program comp
  • 为什么 _SERVER["HTTPS"] 不设置为 1?

    我的网站有 SSL 证书 我正在点击https mysite com info php https mysite com info php 但在 PHP 变量部分下 SERVER HTTPS 没有被报告 我相信这会导致 Drupal 站点出
  • DeferredContentProvider 的替代方案,用于支持使用 SWT.VIRTUAL 在表中进行过滤

    在我的项目中 我有一个TableViewer它需要显示超过 100 000 个项目并对其进行过滤 没有SWT VIRTUAL该表需要几秒钟才能显示 当尝试使用时SWT VIRTUAL但是 我有以下问题 刚刚实施ILazyContentPro
  • 有没有办法让 Android 设备应答发送到广播地址的 icmp ping?

    我想以编程方式让我的设备在连接到 wifi 网络时响应广播 ping 即 ping 192 178 1 255 我有办法做到这一点吗 也许是一个会回复的侦听器 或者是在某处设置的标志 Thanks 我有办法做到这一点吗 简而言之 是的 但集
  • 使用 R 绘制具有等值线图叠加的 3D 曲面图

    我有一个 3 元组数据集 X Y Z 点 我想使用 R 绘制它 我想从数据创建曲面图 并在曲面图上叠加等高线图 以便创建等高线图是曲面图的 阴影 或投影的印象 等高线图将出现在曲面图下方 我的数据集看起来有点像这样 Axis Data Ty
  • Java:使用 Apache commons-IO 2.4 在子目录中递归列出文件

    我正在尝试使用以下代码列出根目录及其子目录中扩展名为 xls 的文件Apache Commons IO 2 4图书馆 我正在检查尺寸collection
  • 如何从脚本创建 SQL Server 2008 数据库

    我正在尝试进行实体框架演练 所以我 在这里下载 SQL 脚本 http www learnentityframework com http www learnentityframework com 在SQL Server Managemen
  • Service Fabric 服务参考有黄色三角形

    我正在使用 VS2015 当我向服务结构应用程序添加服务时 引用有一个黄色三角形 我的错误窗口中没有错误 当我将鼠标悬停在参考上时 不会弹出任何内容 我怎样才能找出问题所在 否则 该解决方案可以正常构建并运行良好 This is VS 中的
  • 动态设置google api key

    我有一个应用程序想要嵌入谷歌地图 并且需要将密钥放入配置文件中 所以这就是我所做的 在config js中 GOOGLE MAP KEY mykeyofgoogleapi 在index html中 问题是我看到谷歌的 GET URL 只是
  • 函数返回后,函数中分配的内存是否仍然保持分配状态?

    对于下面的代码 1 main 调用函数 f1 2 函数 f1 进行一些数字运算 使用 malloc 创建一个 char 数组 然后将数组的指针返回到 main 不取消分配 释放 数组 我有3个与此案相关的问题 1 我假设 虽然函数 f1 已
  • Windows 中的历史夏令时

    Windows 中是否有一种简单的方法 使用 Delphi 而不是 NET 将 UTC 时间转换为本地时间 并进行夏令时调整 数据可以追溯到 12 年前 因此需要考虑这段时间内 DST 开始 结束日期的变化 有趣的是 昨天 LinkedIn
  • 如何查看输入流中的前两个字节?

    应该很简单 我有一个输入流 我想在其中查看 而不是读取 前两个字节 即我希望输入流的 当前位置 在我查看后仍然为 0 最好和最安全的方法是什么 Answer 正如我所怀疑的 解决方案是将其包装在提供可标记性的 BufferedInputSt
  • 项目版本设置不断恢复

    我在 Delphi 10 1 Berlin 有一个简单的项目 在项目设置中 我曾一度选中 预发布 现在我有两件事 无论我改变多少次 我回来后都没有保存 这些都是 预发布复选框 再次重新检查 模块版本Release数量 变化自0 to 1 请
  • 底部的选项卡栏带有 MonoTouch.Dialog?

    MonoTouch 和 MonoTouch Dialog 的新手 但我确信可以创建一个选项卡栏或按钮栏或您想要的名称 iPhone 底部带有图标 按钮的黑色栏 问题是如何使用 MonoTouch Dialog 做到这一点 谢谢你的帮助 下面
  • 为什么我的 MVC 5 应用程序尝试访问本地数据库

    我一直在本地计算机上开发 MVC 5 应用程序 并且刚刚尝试向 Azure 公开测试版本 我发现了这个新错误 我的连接字符串没有对 LocalDB 的引用 并且我在代码中找不到任何想要创建或访问 LocalDB 的内容 然而 我收到与尝试创
  • 分段错误:11 - 模块交叉引用

    我正在尝试通过模块交叉引用来解决分段错误 不知道如何进行这项工作 部分错误如下 1 While reading from Users damiandudycz Library Developer Xcode DerivedData Hypn
  • 加快“导航抽屉”关闭时的动画速度?

    已实现并按预期工作 因此确实没有值得在此发布的代码 只是想看看是否有人有加快抽屉打开和关闭时间的经验 例如 YouTube 应用程序要快得多 您绝对可以调整动画的持续时间 但这需要您从支持库中复制类 然后进行相应的编辑 视图拖拽助手 持续时
  • Go 中的递归锁定

    Go s sync包有一个Mutex 不幸的是它不是递归的 在 Go 中实现递归锁的最佳方法是什么 很抱歉没有直接回答你的问题 恕我直言 在 Go 中实现递归锁的最佳方法是不实现它们 而是重新设计代码 使其一开始就不需要它们 我认为 对它们
  • urllib3 最大重试错误

    我刚刚开始使用 urllib3 马上就遇到了问题 根据他们的手册 我从一个简单的例子开始 Python 2 7 1 r271 86832 Apr 11 2011 18 13 53 GCC 4 5 2 on linux2 Type help
  • 如何使用 TabItem 名称参数调用 XAML 中的绑定方法?

    我有一个在 XAML 中绑定的对象实例 它有一个方法 将返回给我其他对象的列表 根据我传递给此方法的属性值 它将返回具有该属性值的所有对象