c# - 在 WPF 中使用值转换器而不必先将它们定义为资源

标签 c# wpf data-binding converters

是否可以使用值转换器而无需事先将它们定义为资源?

现在我有

<Window.Resources>
    <local:TrivialFormatter x:Key="trivialFormatter" />
</Window.Resources>

<Button Width="{Binding Width, 
               ElementName=textBox1, 
               UpdateSourceTrigger=PropertyChanged, 
               Converter={StaticResource trivialFormatter}}">

难道我不必在 Window.Resources 中声明 trivialFormatter 资源,而是可以直接从 Button 的宽度绑定(bind)中引用它吗?有点像

Converter = {local:TrivialFormatter}

谢谢

最佳答案

对于单例类型的 IValueConverter(例如,它们不需要当前绑定(bind)实例的任何状态),我使用静态转换器,即:

Converter={x:Static SomeNamespace:SomeConverter.Instance}

WPF 博士还有一篇关于使用标记扩展使其内联更简洁的精彩帖子 here .

关于c# - 在 WPF 中使用值转换器而不必先将它们定义为资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2304269/

相关文章:

c# - 使用 EF 7(核心)将实体绑定(bind)到 WPF 数据网格中

c# - 如何强制 C# 构建过程包含代码中未使用的程序集

c# - 如何重新使用 ASP.NET .aspx 或 .ascx 文件?

wpf - 自定义扩展器以在鼠标输入时扩展

c# - 如何将相同的 DataSource 用于多个 DataGridView,并在每个 DataGridView 上应用不同的过滤器?

c# - WHERE 子句 Azure CosmosDB Mongo 子文档

c# - 将命令行参数传递给 WPF 项目中的 COM 组件

c# - WPF Combobox如何显示LIST集合中的值

c# - 设置对象的 DataSource 属性时,何时使用 Type 与实例?

c# - Bindings 中的属性名称不区分大小写?