绑定到静态类'方法的结果

时间:2013-12-06 03:00:25

标签: wpf xaml data-binding

我有以下内容:

namespace Foo {
  public static class Bar {
    public static int Fubar() {
      return 100;
    }
  }
}

现在我在xaml。我想使用该方法来设置矩形的高度。

<Rectangle Height="{Binding Source=???}">

2 个答案:

答案 0 :(得分:2)

您需要ObjectDataProvider绑定到方法。

示例(调整为NameSpace / Class / Method):

<Window x:Class="SerialPortBinding.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:ports="clr-namespace:System.IO.Ports;assembly=System"
        Title="MainWindow" SizeToContent="WidthAndHeight">
    <Window.Resources>
        <ObjectDataProvider ObjectType="{x:Type ports:SerialPort}" 
            MethodName="GetPortNames" x:Key="portNames"/>
    </Window.Resources>
    <ComboBox ItemsSource="{Binding Source={StaticResource portNames}}"/>
</Window>

可能不需要顶部xmnls的组装部分;如果它没有出现在CodeSense中,请忽略它。

答案 1 :(得分:0)

尝试这样的事情: -

{Binding Source={x:Static classnamespace:Bar}, Path=Fubar}