C# 绑定到一个方法上?

C# 绑定到一个方法上?,c#,wpf,data-binding,C#,Wpf,Data Binding,这是有点难以定义我的问题,准确,但我会尽我所能! 我实际上有很多(数百个)这样的经典绑定: <ComboBox ItemsSource="{Binding Path=FrameNames}"/> 其中FrameNames是我的代码隐藏属性。 问题是,我现在必须对一个方法进行绑定,我知道这不是MVVM规范,但这正是我想要做的。 代码(不起作用)如下所示: <ComboBox ItemsSource="{Binding Path=LocalizationUtil.GetLoc

这是有点难以定义我的问题,准确,但我会尽我所能! 我实际上有很多(数百个)这样的经典绑定:

<ComboBox ItemsSource="{Binding Path=FrameNames}"/>

其中FrameNames是我的代码隐藏属性。 问题是,我现在必须对一个方法进行绑定,我知道这不是MVVM规范,但这正是我想要做的。 代码(不起作用)如下所示:

<ComboBox ItemsSource="{Binding Path=LocalizationUtil.GetLocales()}"/>

有办法吗?(即使这并不完全符合MVVM模式!)

(如果我在MyComboBox.Itemsource=LocalizationUtil.GetLocales()的代码隐藏中执行此操作,则此操作将有效)
当然,如果有变化,就不会引起注意)

是的,你可以,但这是一种痛苦


是的,你可以,但这有点痛苦


您可以向视图模型添加
Locales
属性并绑定到它,如下所示

public LocaleObject Locales
{
    get { return LocalizationUtil.GetLocales(); }
}

<ComboBox ItemsSource="{Binding Locales, Mode=OneWay}" />
公共区域对象区域设置 { get{return LocalizationUtil.GetLocales();} }
您可以向视图模型添加一个
Locales
属性并绑定到它,如下所示

public LocaleObject Locales
{
    get { return LocalizationUtil.GetLocales(); }
}

<ComboBox ItemsSource="{Binding Locales, Mode=OneWay}" />
公共区域对象区域设置 { get{return LocalizationUtil.GetLocales();} }
您想获得什么?如果是UI本地化(正如我从名称中猜到的),则有更简单/更好的方法…这只是一个带有字符串的组合框,字符串是可用的区域设置(如“en-GN”“en-US”等)。只是一个带字符串的组合框,没什么,你想得到什么?如果是UI本地化(正如我从名称中猜到的),则有更简单/更好的方法…这只是一个带有字符串的组合框,字符串是可用的区域设置(如“en-GN”“en-US”等)。只是一个带字符串的组合框,没有别的了。是的,但这是一个公共属性:/你为什么不想要一个公共属性?只有公共getter的属性只能访问方法所能访问的内容。是的,但这是一个公共属性:/为什么不需要公共属性?只有一个公共getter的属性只能访问该方法所能访问的内容。如果您想创建一个可普遍访问的资源,那么该属性非常有用。是的,当我回答这个问题时,问题变得模糊了很多。我甚至在想一些可能需要参数的内容。。。但我想如果你愿意,你可以做一些索引类型的黑客。我见过它用于枚举系统颜色。如果你想制作一个普遍可访问的资源,它很有用。是的,当我回答这个问题时,问题变得模糊了很多。我甚至在想一些可能需要参数的东西。。。但我想如果你想的话,你可以做一些索引类型的破解。我见过它用来枚举系统颜色。