我有一个名为DataModel的类,用于存储有关应用程序状态的所有信息。在那里,我有一个名为DeviceInput的属性,键入为CoreInputDeviceTypes。那是我保持InkCanvas是否启用触摸的值的地方。我想将我的InkCanvas.InkPresenter.InputDeviceTypes属性绑定到DeviceInput属性。我创建了一个Binding

Binding inputBinding = new Binding();
inputBinding.Source = DataModel.DeviceInput;
inputBinding.Mode = BindingMode.OneWay;


问题是我找不到任何将绑定设置为InkCanvas.InkPresenter.InputDeviceTypes属性的方法。如果我尝试这样做:

MyInkCanvas.SetBinding(InkCanvas.InkPresenter...)


InkPresenter不可用。这是有道理的,因为InkPresenter是子项,而不是依赖项属性。但是我也做不到

MyInkCanvas.InkPresenter.SetBinding(...)


我猜这是因为InkPresenter来自Windows.UI.Inking而不是Windows.UI.Xaml。但是,有什么方法可以对此属性设置绑定吗?

最佳答案

我认为您可以使用自定义依赖项属性来解决此问题。类似于以下内容:

    public static readonly DependencyProperty InputDTsProperty =
        DependencyProperty.Register("InputDTs", typeof(Windows.UI.Core.CoreInputDeviceTypes), typeof(MainPage), new PropertyMetadata(null, new PropertyChangedCallback(InputDTsPropertyChanged)));

    public Windows.UI.Core.CoreInputDeviceTypes InputDTs
    {
        //get;
        //set;
    }

    private static void InputDTsPropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs e)
    {
        //set MyInkCanvas.InkPresenter.InputDeviceTypes here
    }

    public MainPage()
    {
        this.InitializeComponent();
        Binding inputBinding = new Binding();
        inputBinding.Source = DataModel.DeviceInput;
        inputBinding.Mode = BindingMode.OneWay;
        this.SetBinding(InputDTsProperty, inputBinding);
    }

关于c# - 设置InkCanvas.InkPresenter绑定(bind),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32890220/

10-09 03:50